I have a simple theory. Most managers are still educated according to Taylor's Scientific Theory of Management, where the managers are more intelligent than the "factors of production," and their role is to "scientifically" direct their work so that they create additional value (which is multiplied by how many workers they have reporting to them). Their salaries reflect that model, and thus is proportional to the salaries of their direct reports times the number of direct reports they have. This is well-ingrained in the workplace, and in society.
Unfortunately programming is really the first discipline where the primary determinant of the "factor's" productivity is not the manager's skill but actually the intelligence of each individual. There's huge conflicts created, not just about salaries, but job roles, and really the structure of society (which is really built around an educated managerial class overseeing (and living apart from) a less educated working class.
The primary issue with paying programmers more is that they're butting up against those managerial salaries and life roles. Programming doesn't fit Taylor's theory. To change that isn't just about micro changes in business, it's about macro-changes in society.