I don't understand why new languages ever use the :: notation for scoping. It's hard to type (holding shift for two keystrokes) and visually noisy.
Obviously, C++ set the precedent and people are familiar with it. But if you're starting a completely new compiler, why make the same old mistakes with syntax?