It's a problem that reliably recurs everywhere because organisations are made up of people and people are unwilling to be managers over other people who make more money than them. They quit. You need managers and if you want to keep them they need to make more than their direct reports.
Another way this is done is with reinforcement of social hierarchy outside of comp. This is where you get blatant infantilization of developers and in my experience wildly untrue stereotypes (repeated uncritically as true all over most organizations) about "normal" developers being incompetent at design, UX, requirements gathering, communication generally, understanding business trade-offs and concerns, et c. Nearly all non-junior devs I've known have been at least decent at most or all of those things, actually.
[EDIT] Oh, it's also why devs are compensated like professionals (they haven't been able to figure out how to stop that, yet) but work at open tables crammed together, under management's direct eye, like they're packing cocaine in Colombia or something.