The problem with H-1Bs is the vast majority of them are abusing the system. I've seen it firsthand working at one of the top four global immigration law firms. Most H-1Bs are gaming the system. They lie about their title, experience, and work location to get a lower prevailing wage. For example, they say they are going to work in Iowa and then work in Boston and on and on. Most (over 80%) of the H-1s go to outsourcing companies like Cognizant, Tata (TCS), Infosys, Symphony etc. Their entire business model is based on the fact that it will be cheaper to obtain and H-1 than to hire locally. This is fundamentally fucked up. Most H-1s are coming from diploma mills or have no education at all and use 'experience evaluations' which are another rubber stamp service. It's not truly high-skilled labor. If they were high-skilled they'd just apply as an O-1 applicant. H-1s are effectively apprentice engineers. They usually do not have any specialization--so why are they needed? To keep wages flat. It's a corporate handout. Look at how STEM salaries have stagnated: http://spectrum.ieee.org/at-work/education/the-stem-crisis-i...
But really, H-1s aren't nearly as bad as the L-1s. L-1s have no prevailing wage and no education requirements. Fortune500s bring over L-1s and keep them on foreign payroll (for up to 6 years) and then can send them abroad for a year and bring them back for another 6. I've seen L-1s coming to work for major oil companies where the applicant has 20 years of experience and a Master's degree--making $15,000/year.
The problem with freedom of labour and open borders is that it's usually just one way. How many Americans are going to work abroad in India? How many Canadians are going to work in China? It's feel-good rhetoric but ultimately it's just an excuse to flood richer nations with workers from poorer nations. I'd be all for this system if there was some kind of tit-for-tat program where India gets as many visas given to them as they give to us proportionally--but it will never happen. If STEM and engineers are so in demand why have their wages stagnated? Why has the average income actually dropped in Silicon Valley? There's a disconnect in what they claim is happening and what is really happening.
The other problem I see with H-1Bs is the way they connect to Green Card/Permanent Residency. Once you file your I-140, you can stay on your H-1 indefinitely. Your H-1 doesn't have to match your I-140 either, so you can be employed as something lowly like Customer Support Engineer and then file the I-140 for a "Senior Data Scientist" or whatever and then drag out the Green Card process to keep their prevailing wage down. Oh and guess what? The companies and the law firms coordinate to do this. Why? Because once the I-140 is filed the employee is locked into that company and they can hold the Green Card out as a carrot and get a loyal obedient worker. It's a sick exploitive system. It's bad for everyone but the corporate executives who are getting a bonus for meeting their budgets.
Moreover, corporations also coordinate mass-layoffs and filing for Green Cards. They will file for hundreds, sometimes thousands of Green Cards, then wait to announce the layoffs once the I-140s are filed. If they did it the reverse they wouldn't be allowed to file for the I-140s. I saw this happen monthly in the Silicon Valley.
However, I have also seen H-1Bs be used to bring over employees from companies that were acquired abroad for reallly smart people making unique products or some kind of breakthrough technology. Those are totally legitimate uses of the program. Those aren't the problems. The thing the government needs to learn is that anything that is available to companies that has a monetary reward for telling "white lies" to the government and depends on the companies "being honest" let alone understanding or agreeing with the overarching intent of the legislation -- is going to have the absolute shit abused out of it eventually.