It doesn't totally fix them, but it does make it so the applicant is more fairly compensated for accepting a more abusive work environment. It also stops companies from using H1-Bs as a mechanism to reduce overhead.
> I think the best way to solve it is to remove or reduce the restrictions on staying in the country after they have worked here for some number of years.
I'd be for that as well. If someone comes in on a work visa I want them to either have full access to the labor market with all the freedoms any american citizen has, or I want their compensation to be high enough to justify locking them to a company and out of the general labor market.
How so? It increases the cost to the employer to hire an H1B employee, so they might hire less of them. But it could also mean they pay the employee less to compensate for the higher cost of bringing them in to the country.
It's very abusive to the workers hired as H1-B and it's designed for wage suppression. You can stay an H1-B for years. If you lose your job, you'll face deportation. It gives your employer a VERY large amount of leverage over your life.
It's supposed to be about bringing expertise when local expertise isn't available, but in practice it's companies saying "Oh, we can't find someone who will work for $50k as a software dev so we need to hire H1-Bs."
Either the program needs to end or the minimum salary needs to be raised to something like $300k to compensate for the leverage the employer has.