This is an extremely optimistic view of self taught programmers. While these type of self taught people certainly exist and I have worked with a few, they're definitely not universal or even, I would say, the norm. Most self taught programmers I've dealt with will brute force any problem they have into the one thing they know and are just barely scraping by on frantic googling and copy-and-pasting in random code from stack overflow.
That said, a lot of people in both categories aren't that great in the workplace. Either through lack of discipline, lack of experience, emotional problems that prevent them acknowledging negative feedback and using it to improve themselves, or a general desire to overthrow capitalism whilst reading Facebook. But none of that has anything to do with going to university which is a privilege that may or may not be available to somebody given their class, background, and general life experiences.
As long as programming remains an uncredentialed occupation - compare and contrast with medicine and the law for example - people without degrees deserve the right to be assessed on the quality of their actual work, and not a general prejudice on how they acquired the ability to do it. After all, the people who laid the foundations for computer science, necessarily didn't have a computer science degree.
You could easily say the same of university-educated coders who only learned Python and C and are up against a real commercial deadline for the first time. I've seen those folks do some crazy shit.
Dumping anyone into a project outside their area of experience with no guidance will cause poor practices.
My experience of university-taught programmers has been that they can't teach themselves, and tend to assume their knowledge is wider than it actually is.
And my original point is that experience is massively more useful than education when encountering difficult issues in the field. I stand by that. I've seen too many real-life examples to not believe it.