Suppose that you had code that securely processed credit card information in a function . Should anyone be able to force access to your credit card information just by declaring a global variable with the same name as the local variable used by the function to store your card number ?
No reasonable programming language would permit someone to come along later and hijack all local use of a variable name .
If this is something that you feel strongly should be supported then you can get a copy of the source code for Octave and hack it to have it look every variable up in the global name table, and watch the fireworks the first time that some does a
global i; i = 
Remember that variables take priority over functions so this will force every use of i as the imaginary unit to make the expression empty instead ....