With respect to your final point about teachers, firefighters, and doctors (please keep in mind I'm not against what I'm about to say) it comes down to the public nature of these jobs. When it's tax money, it's everyone's business. When it's a corporations money, it's only their business. Now obviously it's more nuanced than that, companies receive tax breaks and what have you, but I think that is largely to blame. Software engineer salaries aren't a matter of public discourse or political whims. Doctors, teachers, firefighters, and police officers are.