Also the idea that everything has to go into a flat /bin directory is nonsense too. My experience is chiefly with illumos, but we have inherited a number of separate trees for compatibility with different standards; e.g., /usr/xpg4/bin had some POSIX binaries where they were incompatible with the default /usr/bin binaries. There were also SunOS (BSD) compatibility binaries in /usr/ucb for a long time. Commonly different JDK versions could be installed alongside one another under /usr/jdk/$version. Unbundled software from many other places would find its way into trees in /opt. Even shared libraries can be installed alongside one another without conflicts, provided you do the right thing with ABI stability and sonames etc.
I have no doubt that other OSes have made a set of similar decisions to provide various levels of binary compatibility and evolution over time, depending on how important it has been to their respective user communities and customer bases.