The problem is that a lot of people get the CS and SE degrees just so they can secure a "career." They don't actually care about the tech. They want to do the bare minimum of work then leave for the day. JUST LIKE ANY OTHER CAREER. Look at marketing, sales, civil engineering, structural engineering, architecture, secretaries, human resources, and all the others. The employees behave the same way. Tech is no longer marginalized like it was. It is a commodity job. All the frat boys and jocks are now doing it as well; so the rules are the same as for any other job.
The main difference between tech and the more prestigious or artistic of the normal careers, is that job hopping in tech is relatively easy to justify because salaries don't scale with results. There is no "stay in this position for five years than make partner" or "complete this project and get a massive bonus or profit share." You just keep hopping until you hit that salary you want or you get stuck in a "cost-of-living" raise situation. But that isn't really different from an accounting, HR, or other commodity positions.
Couple that with the proliferation of technology to the point that for younger people it is commonplace and boring, then you have the current situation.
That being said, there is still probably about the same overall amount of driven, interested techies. The problem is that now they are diluted with all the career people.