If a shortage can't exist by definition, then maybe we need a new term, or a different way of thinking about a shortage. I am willing to listen to people who claim there is a shortage of engineers, though I am skeptical of the claim.
I think about it this way - how does the pay, prestige, job stability, growth, and forth for an engineer compare to the other options available for highly talented people? As it stands, I think that it does make sense that there would be higher demand than supply for engineers at the current salary levels.
As an example, I read about a guy with a PhD in Engineering from a strong program and several years work experience who was writing specialized software. His salary was 125K a year. The article was about granting more visas to non-us citizens, and the writer clearly thought the 125K salary ended all discussion of whether the pay was extraordinary, high enough that clearly a shortage was in effect.
Personally, I don't agree. This guy had gone through a grad degree that typically takes 6 years or more (twice as long as a law degree, 3 years as long as an MBA, as long as a med degree and half of a residency). He had gone through a much harder undergrad degree than most, and he had already proved his ability to write difficult code. 125k isn't close to "shortage level" salaries for someone like this. I know employers would get sticker shock, but I think you'd have to go up to 250K or more to be competitive with comparable professions (at the elite level). Keep in mind, 6 years of a PhD + a few years of work experience would be equivalent to a 6th year associate at a law firm - but without the extra years of earning.
I'm willing to consider the possibility of a shortage, but right now the evidence seems very weak. In fact, the salary level for engineers compared to other top professions goes a long way to explaining the low interest in these degrees, especially at the grad level.