Something I don't think a lot of people realize is that "programmer" is a working class profession. The ability to code is a commodity.
By working class, I mean "not the capitalist class." There is still a big difference between programming and say, boilermaking. But in 2015, tech companies are the factories of last century. (We even call them software shops!)
There is a spectrum of quality of course, and a lot of people take a lot of pride in their craft, especially when they do it well, noting the beauty of good code, etc. but at the end of the day, most people who make chairs, for example, are not the highly-paid turtlenecked Danish guy whose work is basically art that you can sit on...most people who make chairs work in factories and churn them out on an assembly line. So it is with programming.
To your point, it certainly is in the interest of those who hire programmers to pay them as little as possible, given the nature of the economic system we find ourselves in. Consider also the trend of startups paying sub-market salaries and compensating with equity. The startup route certainly looks like a way to do programming while freeing yourself from the will of The Man (I'm being tongue-in-cheek here, but you understand the vibe, I hope), but when you get right down to it, it's more of the same. Instead of corporate execs, you have investors. Instead of middle management, you have founders. The programmer is still just the programmer.