Whole H1B system is essentially modern form of slavery. I've seen people becoming multi-millionaires exploiting this slavery system. Companies in India have amassed massive revenues exploiting the same. The way it works is you put advertise in newspaper for minimum expected wage for tech worker. Then you buy a genius 3rd world tech worker and sell him/her to clients for approximately twice that rate. Then you put significant chunk of income which was supposed to be all theirs in to your pocket. Even if you managed to sell only 10 tech workers you will be minting close to million dollars a year for absolutely doing nothing but the initial paper work. Companies like TCS, Wipro etc typically have 100s thousands of such workers for sell. The reason this is slavery is because your ability to negotiate your wages is extremely limited. Sure, you can transfer your H1B but companies which accommodates such transfer is few and far between because of cost and legal people they have to keep on their staff. Most startups are immediately out of question for employment, for example. Further, if your H1B is coupled with green card application then it puts further friction in changing jobs.
So in effect, H1B is just glorified tech slavery. The way to fix this system would be to allow H1B workers to apply anywhere they want without effecting other processes such as green cards. This would immediately not only stop slave labor but also bring wage parity to market.