It’s definately an option – it just feels silly to waste the overhead of an object on this. Reeks of the “let’s throw objects at everything” nonsense – though in this case it at least has a reason, overcoming shortfalls in how PHP works. The mere concept of adding extra “__get” or “__set” functions just seems so… wasteful… Though certainly no more wasteful than anything else mentioned so far in this thread.
Though no… not an option, as there will be functions that SHOULD be able to modify it and/or add to it as well… so locking it out completely doesn’t fly either. There is a point in the code at which stuff stops being added to the array – but that’s well after where I start wanting some functions not to be able to access it since I’m doing PGO (parse-generate-output… a play on MVC that cuts out all the oddball wasteful code overhead that trying to implement true MVC on PHP brings with it. Parser figures out what the user-agent wants to do, the generator does it, the output sends it…)
If there was a point at which I could say “ok, from this point on no changes” __get is very attractive, it’s just not an option here; well… I could use that on output via a re-assignment… that might simplify theme coding.
The same reason turdpress does? Custom Skins, custom mods, all of which make 80%+ of wordpress vulnerabilities be in what people add to the code. Hence that nice little pwnie they won back in '08? (still no excuse for all the gaping massive holes elsewhere in it though… un/pw in DEFINE? really? REALLY? REALLY?!?)
A lot of this paranoia as you call it comes from exploits I’ve had crop up in software I’ve been using on servers the past decade… and observations of software I’ve had to clean up after for others… Wordpress, phpBB, SMF – it’s bad enough when there’s a hole to get in the door, but to take NO precautions in terms of isolating bits of the code from each-other? Ridiculous. From Wordpress having endless entry points that output actual values and putting sensitive data in global scope permanant storage – to forum softwares leaving their settings file with all the sensitive stuff 755 (or many people resorting to 777) – to software like SMF and vBull actually trusting the array version of a set of fields in a form to actually contain just the values that should be set without even checking it against a server-side list…
I thought this stuff was programming 101 – It was twenty years ago and we didn’t even HAVE most of these languages or databases… much less as grandiose a form of networking.
Yeah, and DOS users said the same thing about *nix file permissions for twenty years. 
Uhm… modifying an objects variables when passed by reference, vs trying to write to a file that’s 644…
Not even in the same county, much less ballpark. Unless of course you’re silly enough to 755 it like all the default “idiot mode” CMS settings.php files out there.
though I suppose that is a detail I omitted – settings is NOT static and some functions CAN change it…