ii and iii are the big issues for me (and obviously interwoven.) While it's not an original observation, one aspect of ii) that is especially bad is that most people probably have a distorted perspective on how good they are when they are starting out. The pool you will actually be competing with is probably much stronger than you realized.
In discussing some of these issues with a friend of mine, he said that he thought a good solution would be to substantially cut graduate enrollment and fill the labor gap with an increase in staff scientist positions. I think there's a lot to recommend that, but I can't say I see it realistically happening.