Why are either of those things a problem? Why do we need to spread H1Bs between industries? Why do small companies who pay less deserve cheap foreign labor over large companies who pay more?
Value and pay aren't the same across industries. Someone can still contribute the same value but the field they are in simply doesn't have the economic profitability required to pay them the same way software does. In fact, software is the anomaly in compensation. Making a policy that benefits only one type of industry over everything else is simply bad policy.