Individualized bonus/compensation decisions have no place in environments where the work is heavily or totally team-oriented. It forces people into a mode where they focus on getting the most individual credit instead of making the product as successful as possible. That general incentive exists in any team-setting, of course, but when you grade everyone on a curve like that and tie compensation/job retention to it, you really force everyone into playing that game.
By way of contrast, look at how investment banks do bonuses. If you're in IBD, your bonus is usually based on the success of your deal teams. If you're in S&T, your bonus is usually based on the success of your desk. Even further in that direction is how many law firms handle compensation: everyone is paid in strict lock-step. The end-result of these models is that nobody has an incentive, at least a purely monetary incentive, to jockey for credit. The way to make more money is to have the project be successful, and that means doing your best to cooperate with your teammates.
Sometimes you're forced to pay individualized bonuses. It might be the only way of attracting the superstar that would otherwise be able to make a lot more money elsewhere. But Microsoft has very high hiring standards and is rolling in cash. It should not have this problem.