Here's the problem. Bad employees tend not to leave of their own free will, in my experience the worse they are the more this is true. However, really good employees tend to move on every few years as they grow into new opportunities. What this means is that every time you replace a good employee you roll the dice that you'll get a bad one. There is now one position that is likely locked in place with bad employee. Over time this leads to a lot of bad employees, which in turn lowers your retention rate of good employees.
Now there is a standard tactic to fight this (and this same tactic would work in your senario as well). Make the bad employee extremely uncomfortable. Within the rules of the system do everything you can to make work suck. This does work reasonably well. The problem? Terrible employees are immune to this. So if this tactic is abused you end up with only terrible employees.
So in short, without the ability to fire people easily you tend to go on a downward spiral of increasingly bad-mediocre employees.