This is 100% caused by stack ranking, and the problem you identify is a very real one. Chopping off the bottom 5% of employees works if you have a LOT of dead weight, but realistically you can't really do it continuously or you start removing legitimate talent and, just as worse, fostering a toxic community that values playing politics over delivering value.
Not only that, but chopping off the bottom 5% typically makes room for more hiring; these emptied jobs are likely to be filled with less-than-stellar candidates. It take the new hires a few years before they too are dropped down into that lower 5% rank.
Stack ranking ensures that you have churn in your workforce, and not in a good way. You wonder why workers in the tech industry move around so much? Look at stack ranking as a significant contributing factor.
Less cynically, it also increases the odds of finding good employees. A "bottom 5%" worker is statistically less likely to suddenly rise to the top of the pack than a new hire is to produce at that level initially. And, more cynically, that remains true even if there's significant measurement error in identifying that 5%.
That's true if the performance ratings are cost-free and fairly accurate. A company where firing is based on misconduct and promotion is based on achievement, rather than basing both on quarterly reviews, might actually have a better chance of finding good employees, and perhaps more importantly, retaining them.
Why would companies prefer cheap insurance over productivity? If they want to pay less, they can just pay less. People would rather get paid less than get fired.
It’s often easier to get that pay raise by hopping companies. You’re then replaced with a new hire who is probably getting more than you did. And needs a few months to get up to speed.
Treating your proven employees well to retain them would cost less.