I thought about this for some time, but decided that ? for ahead and ? for behind is more intuitive (the way it is in the patch).

The arrows point from the remote tracking ("the original"), to the current branch. It's the current branch's status we want to show. It says "the current branch is up there, compared to the remote branch". Flipping the arrows would reverse that, changing the meaning to "the remote branch is down there".

I think it also corresponds better with the wording of "git status", which says:

  Your branch is ahead of 'origin/master' by 1 commit.

Ahead sounds more like ? than ?, no?

Maybe we need to have a vote on that, maybe my thinking is non-intuitive here.