I recently read, that if a global object (i.e. document) is being called multiple times then it would increase performance of the JavaScript by encapsulating this object int
Even though the statement is technically correct (the name resolution would be faster if a variable is declared in a current scope so that the interpreter doesn't traverse up checking every parent scope) - it's not what you generally need to do.
That's it - the given "optimization" will not give and measurable difference but will make the code more tricky.
Also don't forget the 1st optimization rule: measure first - then optimize what is slow. Is it slow what you're trying to optimize? Nope. Then leave it as-is.
Does this performance increase remain true, even in high availability/offline capable web applications and single page applications?
It remains "true" for every piece of code written in JS.
Will memory usage grow substantially by creating local variable counterparts of highly used global objects?
Nope, it should be pretty close (you're only assigning references, the actual objects are not being copied).