Daniel J. Bernstein, around the turn of the century, proposed a /package hierarchy (for package management without the need for conflict resolution) and a /command directory.
* http://cr.yp.to/slashpackage.html
* http://cr.yp.to/slashcommand.html
Their major problem was the idea that one had to register things with what was to most of the world just some bloke on another continent. But they had concepts like a hierarchical package naming scheme ("admin/", "mail/", &c.), self-contained build trees with versioned names, symbolic links to denote "currently selected version", and an "index"/"alternatives" directory full of symbolic links.