The idea of the "two heads" approach (peer programming or buddy checking) isn't to double output, it's to improve the quality of code released to test and subsequently to customers.
There's a statistic that as you move from development to functional test to system test to the field that the cost of fixing each bug increases by a factor of ten each time - i.e. every code defect you catch in development/unit test saves you a factor of a thousand in costs compared to fixing the same defect in the field. The XP idea is that using two programmers to do the job of one saves you a lot of money in the long run - however, as drauk says, peer programming has other human problems, which is why we find code/check works better in practice.