I'd always thought that was wrong. That's completely the wrong reason to keep a person. It's hugely unfair to the rest of the team. You lose good staff by keeping mediocre ones.
What kind of message are you sending to your staff? How much do you really appreciate them if you're testing the limits of their patience every day by forcing them work with someone who can only be trusted to carry out very simple tasks with very explicit step-by-step instructions and have everything handed to them on a silver platter? If you give the team someone who can't help lessen the workload, has to be babysat and handheld or, worse, cleaned up after, no amount of pats on the back or bonuses will ever make up for that.
And yet, when it comes time to let go of someone like that, I still have that momentary sick feeling. Mostly because the workload won't change and we're now down a person. But also because it was a human that was affected. It's a tough decision, it's stressful to the people who have to do it. I respect and admire the people who have to face it and do it.