Technically we could have different merge bases, since the common ancestor cannot always be determined unambigiously in the case of so called criss-cross merges. Typically we would probably use the same algorithm in both cases though. but considereing all exotic use cases Git users come up with...

We could perhaps declare that different bases are impoossible here. I'm not familiar enough with the synchronization model.

Shawn?

BTW, Isn't the term base and common ancestor supposed to be synonyms? I.e. we determine the merge base by trying to find a common ancessor from the local and remote commits. I.e. "base" here could probably be better described as local (or our when remote is called their).