On the site.pp conversation…
I found an old implementation, circa 2010 where site.pp included a nodes.pp and all the node-specific goo went in there and globals (at the time, a MySQL root pass was the common candidate) went into the site.pp.
The default {} section came later…as best as I can place it, around the 3.8 database switch