An employee sponsored by an H1-B can literally collect their first paycheck and immediately move to another employer.
I'm not sure how much more freedom you want.
http://www.h1base.com/visa/work/h1b%20visa%20transfer%20to%2...
http://www.usavisanow.com/h-1b-visa/h1b-visa-resources/h-1b-...
Having more programmers will not be a problem for the country, they will only be a problem to those who want to maintain their salaries turning their eyes away from reality of globalization.
This is really quite simple. If there's ways for the most talented to make more money, that's where they're going. The most talented aren't locked into any particular career.
Sure, there will be exceptions, but the overall trend will be undeniable.
And I don't see any reason why an increase in the number of Doctors or Lawyers would cause Hospitals or Law firms to hire incompetent employees.
So fewer people are going to law school. And this is true even at the top end. The most talented people are going into law in lesser numbers.
It's not a theory, it's actual fact.
Do you genuinely believe that increasing the number of talented software engineers emigrating to the United States is bad for the United States? Or bad for you?
In the same way that I would argue for public policy that benefits us all (not just me), I think we should have immigration policies that benefit everyone, not just Software Engineers.