What you call global scope is part of an execution context. With each execution context there is a LexicalEnvironment, VariableEnvironment, and ThisBinding. In JavaScript the keyword this must point to an object thus the global execution context must also have a global object. It's all in the specification.
Do we really need both a keyword this and the object it points to in the same execution context? I don't think so but I'm not really a programmer. I just tinker. I do know that JavaScript was put together in 10 days and that resulted in many flaws. I'm not arguing that JavaScript is flawless but I am arguing that many of the article's conclusions are provably incorrect.
Another point the article continues to get incorrect is that declaring a function binds its context to the global object. The specification is clear. The value of this is determined when a function is called not when it's defined. There's also no reason for this inside of a function call to point to the function itself unless the function is called as a method of itself.
The new example 3 in the article now confuses context and execution context. An execution context is created when the JavaScript interpreter first starts and then each time a function is called a new execution context fires up for that call. The context is the object referenced by the keyword this inside an execution context. The object itself is not an execution context which might be where the article is confusing itself and why it expects a function's this to point to itself.