I personally believe that a lot of the really bad developers came onboard during the y2k+dot-com boom, and the population has been self-perpetuating and growing in enterprise environments ever since.
Perhaps the way to resolve this is to create some sort of exclusive society of good developers, which you can only join by personal invitation and after a thorough grilling by some developers who have already joined and who are aware that diluting the society with crap programmers is not in anyone's interest... Something like a Mensa for programmers?
Then good developer could be identified by belonging to this society - much like professionals in other professions are identified by memberships to such societies (doctors, lawyers, architects, hell, even engineers).
Daniel