Martin Fowler highlights some of the common misconceptions around pair programming. In particular his last point reinforces my comments about refactoring duplicated code (ie that duplicated code normally indicates code that is the wrong place). I feel the important concept here is that you should always think about where you write your code (which of course is easier if you have two people thinking about it) and you should always consider if there is a way to reduce the amount of code you are writing. This might be through code generation or reusing code written elsewhere. Done well this process will result in more code being pushed back into an application framework and subsequently less code being written in the long run.