Yes, but while this is certainly true, for what real-world reason does
current code change the value of _G? The only one I'm aware of is to
set it to nil because you don't want people to have an easy reference
to that table for some reason - but if that's the case, they can just
use _ENV to refer to it anyway, so you would still need to change your
code!
I'm all for maintaining back-compatibility whenever appropriate, but
it just seems like people are worried unnecessarily about technical
differences between _G and _ENV when the reality is that (a) they seem
to be there for much the same purpose and (b) pre-5.2 code will
largely need to be reviewed and re-thought-about anyway. Especially if
it uses getfenv/setfenv. [...]