Some schools give good industrial training; some are still bemused that machines exist that perform the computations that are so fascinating to study in the abstract. We need both. It's true that schools can't manufacture stars, but they can help train those with latent ability, just as Real Madrid players are certainly helped by coming up through smaller teams.
Likewise, some places (YC startups, or forward-looking splinter groups in larger industry) need rock stars who can do a lot; but there's a huge swathe of megacorps that just need warm bodies that can tab-complete API calls; the problem with debates like this is that arguments are so rarely anchored by a clear context. Are we doomed to always argue straight past one another?
Speaking of context, in many discussions on this and related topics here I see many contrasts like this raised. There is a vast gulf between startups that (truly) need rock stars and corporations that need IDE monkeys. There is a vast gulf between top programmers who read CS papers for fun and implement problems in 8 different languages out of curiosity, and "programmers" who can't even write FizzBuzz in pseudocode. In these discussions, I get the impression that this segment is either nonexistent or is so small it doesn't matter. As someone in that segment, it make me question if I should be in this industry. If the industry truly has a programmer shortage, I would think that is a poor impression to give.