@dalias on the part of "can get force-pushed between starting to review and merging it": I guess that might mean you like to review patches by pointing a browser at the remote site?
I can see that if someone points me at a clone of my repo on Github, and I look at the patch in a browser and like it, then there's a risk that the version I 'git fetch' and merge into my repo might not the the same one.
But that's not how I do it. I 'git fetch' _before_ the review, downloading a copy of the candidate branch to a checkout on my own machine. Then I review the patch in gitk, probably compile and test it too (after at least one eyeball review pass), and if I'm happy, merge it. And all three of those steps refer to the same version of the patch, because I only ran 'git fetch' once (unless the submitter notified me to go and check back for more changes).