It's not like putting the version into the namespace is necessary for this, though. Rust's Cargo will let you use multiple versions of a library too, without extra namespacing.
Go's package management is really well designed I think and also actually semantically relying on semver