Well, not all specialties pay the same so it'd be problematic if some of the worse paying ones had a bunch of unfilled spots while higher ones didn't. There isn't a (financial) incentive to quit your better paying job to work a less paying one.
I think a better solution is just a "tariff" where a company has to pay an additional 50% of the total compensation to the government. Then if you could fill the spot with an american you'd want to because it saves you a ton of money; but if you actually can't find somebody (at your offered price) then you still have the option of offering a visa.