There is an economic fix for this: remove the parts of the H1B that tie the person to a specific employer. That is, allow them to take any job. This would devalue it because the companies would have to pay them as much as an American would make or they'd simply jump ship after getting the visa. By making them more expensive, they could no longer be used as cheap replacements for an American.
But what will actually happen is that they will make the rules stricter and pretend that's a solution... even though it simply reinforces the status-quo, ensuring that H1Bs are good as cheap replacements for Americans.
It shouldn't be hard to understand--this is all about money. If you want employers to buy less, then H1Bs need to be more expensive.