You've nailed the drawbacks, and the benefits. Yes, a team can drag down and individual, and at the same time the inverse is true; a stellar performer can elevate the entire team.
Putting money on the line does change the dynamic. A group of developers is not going to carry dead weight that is not contributing. The low performers become apparent very quickly, and in my experience it's nearly a self-selecting process. It is necessary to ask yourself, "Do you really want to keep dead weight around?" Maybe the individual has some perceived "seniority", or do they really have pictures of someone doing bad things to animals that they are using for blackmail? I'm trying to inject some humor, but it's a serious question, why are some developers kept around? Is their performance not stellar but not horrible enough to warrant being let go? Unions kept people around for merely seniority, and because of that (and other reasons) unions destroyed several industries by stifling competition.
On the other hand, there is a reason to reward high contributors. At the end of an iteration, compliments naturally appear on the people that made an extra effort and came through for the team. Keep your ears open and listen, it's a natural reaction. Hearing that, and keeping an eye on the software they are producing, makes it easy to know who the stars are.
Competition strengthens the breed. Fat, lazy and complacent shouldn't be the norm. You do not "deserve" a job, you are not "entitled" to a job. Contribute, do your best and you will be rewarded.
How do you balance the performance of a team vs. individuals on a given cycle? Let's compare this to a professional sports team. There were times that even Michael Jordan had an off game. Would this be similiar to the iteration cycle?
Or perhaps an individual had a great year - but the team didn't make it to the finals? Is everyone effected even the individual with the great year? Not every team (even in technology) is going to be made up of individuals that perform at the highest level during each iteration/release/game.
I like the concept - can you just get rid of the dead weight or under performing team members. I think it would also create a fair amount of competition within the team. Like basketball, there are so many "touches" during the game - all of the star players want their touches. How do you deal with the "negative" competition that would result from this approach?
Example: Different developers would argue the value of their contribution and this would equate to dollars.
As I write this, I'm liking it more and more. Because, if someone really had a great year and the contribution was "MVP" like, the software engineer could get a multi-million dollar contract extension with bonus, right/