This is a loaded question based on a faulty assumption. A societal shortage of people in these professions would cause their compensation to increase accordingly, incentivizing more people to enter them until an equilibrium is reached. This is basic supply and demand. Also...
> So it's individually quite stupid to major in anything _other_ than engineering, business or premed.
This is based on the faulty premise that everyone has the same skill set and can succeed at engineering, etc. as opposed to other fields where they may have a comparative advantage.
This is similar to any other area, really.