The problem with H1B and some of the other employment visas is its really difficult or impossible for the worker to change jobs. JD Vance calls them indentured servants. I suspect the situation for actual indentured servants is a bit worse but in any case the workers dont have a lot of options at their disposal. They cant just leave without losing their visa. So their “choice” to work for less money isn’t really a choice at all.
Now is the answer to make things worse, as they’ve been doing (removing the 60 day grace period after losing a job)? Or is it to liberalize the program. Maybe increase standards but make it easier for workers to move jobs?
If it were me, I would make companies "bid" on the visas, where their bid is the salary (including all benefits, minus ALL expenses) they will pay the employee.
Employers who really need employees for high-skilled work would thus get visas. Employers who want to underpay their foreign labor will not.