If I'm not mistaken in my understanding, the main limitation of the current system is that for the namespace you are stuck without using folders for non-hierarchical dependencies.
What does this mean in practice ...
Note that you have x / y / z and a / b as well as a / b / c. If both a / b and a / b / c depend on z / y / z, you will eventually have to either specify this with respect to ( require('../../x/y/z') and require('../../../x/y/z') respectively), or make each individual node_module package. Otherwise, you can do terrible things with symbolic links or the like.
As far as I can tell, the only alternative is to use folders instead of namespace and organization, use file names such as:
jgmjgm
source share