When I was travelling through Italy, I learnt a phrase from programmers there, "If my mother had wheels, she would have been a bike" - and it's a criticism of hypothetical situations like your answer above.
Saying "This is arbitrary if we made a different choice things would be different" is a total meaningless statement because you just move the bar and then say if the bar is moved things are different.
My argument is that eventually all implementations are embedded in reality, if not /usr/local/bin and $PATH then some other abstraction that is equally arbitrary - but in the real world, the one we live in, we have /usr/local/bin, $PATH and a bunch of other "arbitrary" lines that have to be somewhere because without these lines (or some lines) there is nothing. And you have to know them, whatever they are.
Because you know what happens if you don't know them? You end up with people writing blog posts about how difficult programming is, ranting they cant install ruby or pip or node.js, like the article above. You have to learn the underlying system, whatever it is. In this case, it's /usr/local/bin and $PATH.
I think you're not arguing that you shouldn't know the underlying system (correct me if I'm wrong) but you're more saying that these particular abstractions are inconsistent or distasteful - if that's the case, let me assure you that no implementation is perfect, and programmers for nearly 100 years now have been trying to come up with the perfect abstraction that requires no knowledge below, but in reality, it never works, because theres always exceptions, or the abstraction is not flexible enough to apply generally enough to be useful, thats like the two forces that push and pull the argument both ways.
I've come to learn that you must just learn the underlying system, because you'll be able to diagnose better. To that end, you must learn sysadmin, you must know $PATH and you must know the underlying system. Go and have a look at the programmer competency matrix - this stuff is in there