Pivotal is a for-profit company. We pair program because we think it's more effective for most engineering activities (not all: most) than soloing.
I'm vastly more productive in a pair. I don't take 3 hour "5 minute" Facebook breaks. If I get stuck, my pair usually has an idea, so rather than spending a day fighting I spend minutes. Usually the discussion with a pair comes to a better design, sooner, than nutting it out by myself. Working with a pair makes me accountable -- I am far less tempted to take shortcuts with tests, code, readability, design or other important properties.
Many folk will say well gosh, they don't need a pair for these things. I envy you, brave superhuman. I have ADHD and the crippling disability of being merely mortal, so pairing is awesome for me.
As an introvert I don't think I could handle the "pair all day" approach.
The literature is, I believe, pretty thin and equivocal. However the suspicion is that pair programming is pretty much the core loop of bouncing back and forth, reduced to the smallest possible size.
It also avoids some of the antipatterns I've seen with code reviews -- widely distributed patches, reviews getting stale because they were too hard for a Monday, then a Tuesday... then a Friday ...
> As an introvert I don't think I could handle the "pair all day" approach.
You can take a break if you need one. Lunchtime is fixed at an hour. I typically go and spend it alone with a book.
There is sometimes a confusion between intro/extraversion and sociability. I'm quite sociable, I genuinely like talking to people, but it drains me because I lean towards introverted. So the lunchtime recharge is very helpful.
Each pair finds their own balance.
At some point you're going to need more than one person to understand the code and they either go through that learning process months down the road or right now when they can be most useful in shaping that code.
It's not simple mathematics.