It is a whole different game for soso programmers. If you want a soso programmer in China, they will be much cheaper in the states, but the bottom is also much lower than one from the states could imagine, and often you just get what you pay for (or worse).
No, they won't. Many people value staying near home more than they value additional salary. That's especially true for people who'd have to move house thousands of miles into a new culture, but it's true even of people within the US.
This mobility checks salary bottoms for those who do want to stay (e.g. for the market I'm in over in China).
I'm one of them. If you can excuse my lack of humility, I am a great programmer. I've been described by management and teammembers regularly as a rock star. I could easily make 10x the salary were I to move to SV.
I have zero desire to and I've never felt like I was missing anything. Out of my graduating class, only one guy moved to California - in fact, he's the only guy I know of at all who moved to California. I know at least a dozen "great" programmers who live here quite happily.
Of course the extra money is an incentive and there obviously has been and is an influx of programmers to Silicon Valley and the surrounding area. But the wage impact (in terms of setting floors) of the migration is pretty minimal relative to other effects. That's why there are hundreds of thousands, if not millions, of programmers worldwide, including very close to the full 5% of "great" programmers from those areas, that are working for what you and I would consider garbage wages.
EDIT: http://www.payscale.com/research/IN/Job=Web_Developer/Salary
The maximum on that scale is 530,000 Rs, which is 8000 USD for a web developer. No doubt other countries have even lower salaries.