Sure that will prevent gc, but that doesn't mean it's a memory leak
If you're never going to use it again, and you're never going to free it, it's a memory leak.
No, it is not. A memory leak has to grow.
Without the leak part, it is just ...allocated memory.
It is if the variable is accidentally in global scope due to hoisting if it is not explicitly defined in a finer scope. Not an issue in strict mode, you'll get a reference error instead of an implied global.