So is 'lua_getglobal' exposed at the Lua level? In other words, is
there anything you can do to retrieve an original global variable if
_ENV has changed? Obviously you can if you copied over either _G or
the debug library. Any other way?
That's a no. _ENV is set when a chunk is compiled. If you specify a different value for the environment for a chunk and you do not provide access (direct or indirect) to the global environment you have no access to that global environment. This is a feature, otherwise you could not build a sandbox.