I don't understand why someone needs to be fired just because they had one or two bad products. Why would you throw away the rest of the knowledge that this person has? Demote them, put them on new projects, place them where they are stronger and have them work on another project, but outright removing someone seems like it is throwing the baby out with the bathwater.
Makes sense to some extent at a company like apple. Maybe you get two chances but if you don't have the foresight to see how important maps are to people you might not be the best fit for the job.
Fresh perspectives matter sometimes in product's lifecycle. Working on same stuff for years you run a high chance of developing tunnel vision. If there is a new but capable person with different vision, there is a good chance something new and appealing might come of it.
Case in point - Steven Sinofsky and Windows 7.
I dont know what other project they can put someone like Scott Forstall on without even indirectly becoming related to OS development at Apple.