Companies should hire whomever they want.
The H1-B abuse the OP is talking about has nothing to do with hiring better people from other countries, I don't think many people argue that - the problem is just trying to replace perfectly fine engineering teams which live here with cheaper engineering teams. And we're not talking the difference between $150k developer who is from the US and a $130k one that is brought in from elsewhere, we're talking about being able to pay WAY under market, perhaps even half market rates - that's the issue.