To answer your question: The reason is that lite-C was designed to be C compatible.
In C, variables defined outside a function are global. That includes all engine variables listed in avars.h, including the my and you pointers.
The C-Script language contained some 'gaps' with undefined behavior. For instance, it was undefined whether variables saved together with functions - such as my and you - could be changed by calling a subfunction. In fact they couldn't. So that was an exception to the global variable rule. lite-C behaves more logical in that regard.