Why not simply fire those who they don't want to work with anymore? They're clearly used to do that at IBM and it would be much more controlled and cost effective.
Because the cost of firing (dismissing) someone depends on where they have their contract. It might be zero cost in the US but the US is not the World. In Europe it would cost them tons of money to remove hundreds of jobs in a single swipe. OTOH, let people leave, no cost for them.