This has been largely solved with virtualenvs where those collisions happen on the system level, but I concede it's harder when the mutually incompatible requirements are in the same project.
If I'm understanding the question correctly, I agree virtualenv + virtualenvwrapper solves it mostly. For what I consider a decent treatment of some of the shortcomings in pip vs. npm, I found this post helpful: