Aimed higher is correct. I've always wondered why no one looked at the way git does this under the covers and applied it to npm. A directed graph that points to (with a sym link or similar mechanism) the correct package version on the file system.
That way you have the best of both worlds - dependencies don't collide and a single copy of a package version on the file system in node_modules.
That way you have the best of both worlds - dependencies don't collide and a single copy of a package version on the file system in node_modules.