So in addition to this feature (actively preventing developers from depending on a particular hash map implementation), there are:
1. No implicit type conversions.
2. No assignment/increment operators as expressions (only as statements).
3. No unchecked array dereferences (though this is pretty standard in new languages).
4. You have to go out of your way to do manual locking.
5. A canonical whitespace style, and tools for enforcing it.
etc. Some of these are useful if you're careful, but the language assumes that you're not careful and will mess it up if you try doing something tricky.
This can be annoying, but it also creates this feeling that, if your code compiles, it doesn't have the same kind of hidden problems that, say C++ or Java code usually does, which is a big draw. (If I understand correctly, those are the other two main languages used at Google on the server-side.)