I'm pair programming ambivalent. A lot folks like it. I mostly don't, but I enjoy collaborating more broadly, and sometimes a pairing session can be truly invaluable when the task at hand is right. I think it has many benefits in that at least knowledge isn't entirely siloed with 1 contributor. It's not the silver bullet to solving wider system awareness problems though.
>> Not to mention the coveted flow state that most developers look for.
That is perhaps the single biggest factor around why I prefer not to pair for the most part. Frankly I just can't think as well about creative, problem solving stuff when I'm pairing.
There's also an "enjoyability" issue.
If people enjoy pair programming, and this will vary by individual, they'll find ways to keep practicing it even if it's not the most efficient option (and actually there's a good case it is long term cost effective).
If people do not enjoy pair programming, they'll find ways to avoid practicing it even if has many economic or systemic benefits.
As we often find, it's a people thing: we remain emotion-driven and reward-driven beings and that isn't going to change any time soon.