Also, you completely lifted the global command's placement requirements.
I am not fundamentally opposed to this, but this can make the inclusion
of a global variable conditional, i.e. inside an if statement. Until I
actually implement this I won't really know for sure whether there will
be implementation issues.
And if the possibility for a conditional global command is desired, I
would expect an explicit mention of this possibility somewhere in the
command explanation. Now it could come to a surprise to the more naive
implementer. This also implies that a global variable is not included
into the local scope until after the first global command that specifies
it.