Because if you kick the mistake makers too hard, by firing them or making it impossible to continue with their jobs, then you lose not only the skills you've invested in but also the learning from the mistake. Do something wrong in the armed forces and you're often demoted - you have to earn your way back up.
Yup, an employee who's fucked up and been punished is usually still a more productive and useful asset to the company that an employee who hasn't yet fucked up and hasn't learnt to exercise a little more care. I'd rather someone who didn't fuck up because they'd learned to be careful than someone who's just got lucky so far.
Firing is for the willfully incompetent/negligent and for those who never learn to exercise care. Everyone else should get the chance to learn from mistakes.
And firing someone to "make a statement" (i.e. for political purposes) should probably be a sackable offence too IMO, as it's throwing away the company's investment in that person for no good reason.