> What's the point? How is typing foo::bar better than typing foo_bar?
You're missing the whole point of namespaces. The goal is not to replace foo_bar with foo::bar. The whole point is that within a scope you can type bar instead of foo::bar, or bar instead of foo::baz::qux::bar, because you might have multiple identifiers that might share a name albeit they are expected to be distinct symbols.
It seems like you want the language to be more complicated for no benefit. Why not use C++ at that point?