It's a bit self-aggrandizing to make decisions based on comparing yourself to exceptional people, though. It may be that John Carmack didn't need to graduate, but that the average programmer could still benefit from structured learning and a suitable environment.
I have a particular perspective on this: I well into my own career now. I'm presently chief architect at an automaker, and a decent enough systems/embedded programmer - you've probably used some code I've written today at some point. And I didn't even graduate high school.
I've often had a chip on my shoulder about this when I was younger. I am particularly sensitive to "so what school did you go to?" class distinctions when I encounter them. I fully agree people in tech should get a chance to be evaluated regardless of their academical background, and I definitely don't insist on one when I hire.
That said, there's an even mix of great people around me who have spent extensive time in education and academia, and those who have spent none at all. The ones who did rarely regret it, and often found ways to use the environment to its fullest.
I got lucky, too: I fell in with open source instead of, say, online gaming as a teen, and spent my "idle afternoons as a lazy kid" fixing bugs in browser engines and other things that turned out to be useful. Because that online environment was motivating and because I had some fantastic mentors. I'll forever be grateful to my past friend who sent me his yellowed old copy of Wirth's "Algorithms and Data Structures" - with code examples in Modula-2!
IMHO: Forget about exceptionalism, what matters is what you spend your productive hours in the day on and who you do it with. For many their best, easiest way to get something like that in place is likely to attend a university. There are alternatives, but make sure you seek out some version of this.