I think you have to fire them. If you just non-selectively "do things that lead to higher attrition", you're right, you're going to lose the best employees and just make things worse. It's painful and it's actively painful in a way that "let's just not pay so much everyone sticks around forever". You'd have to yank out someone that has convinced everyone they're essential to the company, but they're mostly essential through a situation they created.
I wouldn't overapply this though. I think terminal mid-levels might be undervalued in a way. A separate conversation, but I think "developer assistant" could be a role in the way "dental assistant" is (but not as much based on gatekeeping).
This is only necessary for single-product companies. Otherwise, just do mandatory career broadening assignments like the military does. You have to learn about and work on many parts of many stacks and regularly change teams and product lines. There is no need to fire people to keep them working in one position forever and building fiefdoms.
Heck, militaries even have interbranch and even international exchange programs. There is no reason in principle companies can't do the same and temporarily trade out employees every now and again to learn how things work elsewhere. It would have to be subject to pretty strict NDAs and limitation of sensitive data access, but given the sensitivity of classified defense data, if the military can make it work, private companies should be able to make it work, too.
That handles the specific problem of people not broadening their skills and I certainly wouldn't say that firing people is the best way to get more perspectives in your company. There's a general question of how to get rid of employees that are entrenched, want to stay, but aren't providing enough value.
I don’t know what goes on in manager meetings, but I think it’s a little too convenient that in many orgs very senior ICs get forced into management positions, which has the same effect. Trying to be both is politically and emotionally fraught, and some people hate it and quit.
You might say it’s constructive dismissal at its sneakiest.
I believe in early days Amazon(and possibly even now) Bezos did not want employees to stay for more than 2 years, for the hope that Amazon was a stepping stone to other places for people.
I wouldn't overapply this though. I think terminal mid-levels might be undervalued in a way. A separate conversation, but I think "developer assistant" could be a role in the way "dental assistant" is (but not as much based on gatekeeping).