All arguments aside, there's one fundamental way to answer whether companies' talent shortage complaints are "phony" or not: pay. If there really were a shortage, pay would be rising dramatically. Average engineers would make 200k, 300k... Just like doctors do. But it isn't happening. These BigCos just want more supply so they can pay even less than they do now. Plain and simple.
Edit: Doctors and lawyers make so much because of artificial governors on the supply. They're not absurdly more talented or educated than other people (e.g. engineers), there are simply fewer of them. In the case of doctors, med school is the limiting factor. The time and $ investment is nuts. For lawyers, it's the Bar exam. When there are too many lawyers, the Bar association makes the test harder. When there aren't enough, they make it easier.
This makes me want a standardized programming test so a) talent level could be gagued more accurately than a cursory glance at someone's github account and b) the supply of engineers would be choked off.