Nicely done working out concrete examples here.
I’ve long felt there’s something slightly off about git merging since moving from mercurial, though I’m not even sure they use different algorithms?
(Well, I skipped ahead to the Conclusion, and I’ll just say that) I’ve been using git for years, and have never run into any surprising behaviour from git merge. At worst, an occasional merge conflict would be hairy and take a while to resolve. I’m not seeing a major issue assuming you’ve got a test suite with half-decent code coverage.
I don’t know about your situation, but if you use a rebase workflow, I think you’re less likely to encounter anything like this.