Rabbit, do you think those STEM grads who can't write would have been able to write better if they'd done an English or History degree? No, they would have simply failed their courses, because the ability or inability to write is developed at a much earlier stage in our education system, before we specialise. They are the people who in previous generations wouldn't have needed to write because there was plenty of manual work to go around. Certainly our education system needs to improve on multiple levels, to address the changing needs of our society.
On your second point, by definition, we can't all be elite ... society needs people to work in shops, sweep floors, test computer software and perform routine clinical tests, and, ideally, to find happiness and fulfillment doing those roles, whether it be at work, or outside of it through other interests they can afford to pursue.
Ultimately something needs to be the decider of who does what. Currently the decider is self-indulgence, indifferent advice, naivety and ability to pay. Instead it should be employer-led demand and performance-based selection ... so that those that want to do psychology or journalism have to prove they're better than the many other kids that want to do the same, or else choose something else.
Better to have 10k elite psychology graduates than 100k mediocre ones. If you're going to be mediocre at something, then at least make it something that is useful.