Hmmm.... that is not what I understand from 3.6 in the Introduction to Emacs Lisp Programming.
If you read the section, it talks about 'local variables'.
Depending on you programming background, local may be different from local...
I have always understood local as variable that has a meaning within a context and if I happen to use the name of a global variable that is used in the system, then bad luck. It would be nice to say that when you put a variable like system-time-locale in a let, the global variable's value is 'pushed' and will be recovered once you leave the let-binding. Just to make sure there is no misunderstanding.
I'll try to see how to tackle this in the elisp Introduction and will propose a patch.
Anyhow, better late than never :-) that's what I like, always learning something new.
Best, /PA