The only way for wages to be set other than by supply and demand is to arbitarily declare that the wages will be set via some other standard, which will involve somebody making judgments about the value of any particular profession to society. It’s foolhardy to begin down that path, when the reality is that society needs all of these professions. We need engineers and doctors, but we also need janitors and assembly line workers. Should all of them be paid equally? Is that a better system?
Let’s give it a shot: pass a law that caps doctor’s salaries to be on par with janitors. Pretty soon students will be shunning med school and its associated long hours and student debt. Afterall, why would they go through all of that when they can earn just as much money by becoming a janitor with a few hours of on-the-job training? After a few years you’ve got yourself a doctor shortage. How do you get more students to pursue careers in medicine? If you’re not going to let doctor’s salaries rise up in proportion to demand, then you’re going to have to mandate that a certain quota of students pursue careers in medicine. In other words, you will have to take away peoples’ freedom to pursue the career of their choice.
OK, instead of capping doctors’ salaries, let’s take the opposite approach, and insist that janitors’ salaries be elevated to match the salaries currently paid to doctors. Same end result: if I can draw a six-figure salary pushing a broom, why would I spend a decade slogging through med school? We’re back to the problem of a doctor shortage, the only solution being to dictate what people’s careers will be.
If you think “doctors-versus-janitors” isn’t an illustrative case, then pick any two professions with a salary disparity, such as pencil-pushers and firefighters; you’ll get the same result, i.e. taking away peoples’ freedom so as to make them work in particular professions will be the only way to assure society has the number of doctors, teachers, firemen, etc. that we need.