GLOBAL $VAR is pretty much a CONSTANT unless you DIM it within another scope, and it does not have that overhead associated with it.

I see just as many possible issues of messing up the scope with this method as I do with $VAR method.

Having some real constants might be useful in some cases, thus your $VAR or this UDF method could not overwrite them accidentally, but your also then starting to lose some of the freeform of the language that most of us really enjoy.