Its often espoused that you should have one namespace per assembly. While an assembly should have a purpose and not be a dumping ground, I've found this leads to awkward API design.
The reason is that assemblies have two functions; a) a unit of distribution of types/code b) the ability to have internal and external implementation.
The latter is key, if you can only put all code related to a certain function in one namespace, then you've no way to layer-up the API so that you can release a built assembly into another team (a) that exposes the public API in a way that is self-documenting (the other team would presumably build upon the namespace and add their types to the same namespace, but within a different assembly (b)).
Edit by SJ at MSFT: I don't see that advice in the topic. Is this just a general comment about namespaces, or am I reading over it?