I know more people who have offshored engineering/dev work to India and the like than send work to developers in Nebraska, Kansas, Alabama, etc. Then they complain about the less than stellar work, with timezone diffs, English proficiency, cultural differences and so on.
There's a pretty large pool of people who are willing to work remote and - gasp - even travel to your main office sometimes, but who simply aren't going to uproot and live in NYC to make $100k. For someone raising a family, they could make $75k in Omaha or Tupelo and have a much better quality of life.
http://www.indeed.com/jobs?q=c%23&l=nyc http://www.indeed.com/jobs?q=java&l=nyc
9400 Java jobs in NYC, but only 900 are estimated at $150k or higher.
Cost of living between Omaha (at 75k) and NYC: http://www.bestplaces.net/col/?salary=75000&city1=531370...
Cost of living between Nashville (at 80k) and NYC: http://www.bestplaces.net/col/?salary=80000&city1=547520...
You need roughly $150k in NYC to have an approximate lifestyle. Yet only 10% of the jobs pay that.
The concept of 'hiring' itself may be due for a makeover, and a 'JIT' approach to company development may be in the cards for companies struggling to hire the right people (which they'll likely lay off the moment things go south again).