The experience for getting a working visa in the US is absolutely atrocious, and let me preface this with the fact I am Australian and Australia offers an E3 visa which allows you to work in the US indefinitely for the sponsoring company. It doesn't have the same issues as a H1-B visa (lottery, restrictions on when you can apply), but offers just as much flexibility and power.
I am currently a remote worker for a US company. The company have expressed they would like for me to come over and work full-time and permanently with their company as an actual employee. The kicker is: I have no degree and I don't quite have the 12 years needed experience to qualify for the visa either. This puts me in a difficult position.
I have about 8 years experience in web development, my title is actually "front-end developer" and there is no degree in front-end development or even web development herein lies an issue with how eligibility for visas are determined, the H1-B included. You basically are expected to have a degree in something even if it doesn't relate to your job exactly. If I had a degree in arts or something, I would be able to get an E3 visa just like that because all they see is the paper and go: here you are.
In the instance of this particular company, it is not that they are looking for "cheap labour" they are offering quite a decent relocation bonus, monthly expenditure for housing and other benefits, the issue is competition for them.
The company is based in Seattle and they are facing increasing competition from Microsoft and Amazon mostly who are sucking up all of the talent in the area, whilst other smaller startups and companies struggle to hire people because the bigger companies are offering more money. Apparently Facebook also are in that list, but you really only hear of Microsoft and Amazon mostly taking the talent.
The particular skill-set they are looking for is another thing. They needed someone with Java experience, AngularJS, React.js and the basics of web down-pat. There are other people out there with similar skills, but if you know Java especially, Amazon who are big users of the language, will scoop you up before the for sale sign has even been put up.
It is at the point where it works out cheaper for the company to offer a decent salary, relocation costs, monthly housing costs and pay for my flights from Australia than it is for them to match the salaries being offered by the other heavyweights in the area. That is how crazy things have become. Not to mention the salary being offered is twice that of what I would get from any employer here in Australia for my skill-set and experience.
I am sure that a few companies are taking advantage of working visas, but it isn't fair to lump all companies into the same bucket. Some companies legitimately need to hire outside country hires to compete.
I think there definitely needs to be reform. Companies who want to hire candidates like me face challenges because of strict and archaic requirements for obtaining a visa. Even visas that make it easier like the E3 still have the same eligibility criteria which for people like me who are self-taught puts us into a tricky spot.
Then you have Canada. They make it so incredibly easy to come over and work as an Australian. Provided you have enough funds and a clean criminal history you can get a working holiday visa for up-to 24 months. No degree required, no archaic process, an actual visa that lets you work and gives you rights. While this isn't permanent, it goes to show, how fundamentally different the US and other countries are when it comes to visas.