I wrote:
It doesn't work, I'm afraid. Because of the implicit rebase on push, usually subsequent changesets have a different parent. So when you diff between the two branches, you get all of the intervening commits which were merged to the master.
I was hoping that someone was going to say "you're wrong, making those diffs is easy, here's how." But I take it by the silence that I'm not wrong, and it really is hard.
Also, I'm concluding based on Roan's objections that I'm going to have a hard time convincing people to stop amending their commits. So I wrote this script that provides changeset diffs for reviewers:
http://tstarling.com/gerrit-differ.php
It fetches both commits from a local mirror into a temporary branch, rebases the branches to a common ancestor, and then diffs them.
-- Tim Starling