I hate that word "dead wood". Anyone who did have a degree, pass the informal interview, the technical tests, and team interview for a company, as well as continue to work in an Agile/Scrum environment isn't a piece of dead wood.
If a company discovers they have extra employees, then it is is usually because two or more products have been merged together, or all the development for one large project has been completed. Maybe they now share the same core libraries or features of one application duplicate another. But what to do then? Nobody is going to stay long at a company if they have relocated 1000+ miles for their dream job (say designing new applications) and then suddenly a month later, a PHB decides they want the most qualified engineer to move onto repairing broken widgets, and optionally advertise the original vacancy several months later because they realize they really do need someone to write new applications. So you need to keep people hanging around until you are sure all the problems have been fixed.
Some companies have internal vacancy lists where a job is advertised internally first. This gave employees a chance to move around if they saw something more interesting. Other companies just keep staff "frozen in place" where the only option is to leave.
The problem for Microsoft is that retraining isn't possible because they want workers who can bring in new ideas. If they had someone to train up someone for that vacancy, the trainer would be the person they are looking for.