It’s hard to manage mediocre performers. Low performers you get rid of, and probably no one is too upset because even if they were well liked everyone recognizes that you can’t keep around low performers. High performers are obviously not an issue. But for mediocre performers, you risk the boiling frog where they slowly edge towards low performance but it’s hard to point to anything specific. And by sticking around forever they make a lot of allies and become increasingly hard to get rid of.
What about high performers that don't want to move up? I've known a few really good engineers that just don't want a lot of stress and don't care that much about the extra pay. They just want to do their work well at the level they are at and get paid.
I'm considered "senior" but the work in the last half of my career has certainly been more intense than the first half. Sometimes I think it'd be nice to go "back" a few steps to a job that I'm certainly very comfortable doing without too much effort and get paid decently well.
I worked at a place with long tenured people who stick around forever. Worked great and saved money, but when they retired the business was pretty screwed.
You always have to bet on management being long term dumb, so processes need to be setup to maximize short term risk for management. No modern manager gives a shit about a high impact risk 5 years from now; if you’re lucky they may care about next year.
That’s definitely a downside to an up or out system. In other industries there’s a “mommy track” that allows for stepping back without stepping out but I don’t know of anything like that in tech.