Conversely, keeping clueless people around is demoralizing and insulting to the people actually doing the work. I don't mean junior folks who get it but are building experience. A company I worked for hired a junior against the advice of the team (red flag anyone?). We spent 6-8 months with this individual spinning their wheels. They just did not get it. It created more work for the rest of the team to help them, redo the work correctly, etc. Did they fire him? Nope...they transferred him to another group within the company. And of course he's not doing well in that group either. Why should people work their butts off if it seemingly makes no difference?
I've since left that company - this wasn't the primary driver, there were lots of other supporting reasons, but ultimately it came down to my loss of faith in management's ability to steer us in the right direction.