There is a dropdown called "Old Version History" from which you can diff from a previous patchset instead of viewing the whole patch (yes, I had to be told about it). It's not perfect though, and for instance the commit message is always compared as if it were new.
You can also compare it by downloading with git review, but the only way I found requires you to copy the sha1 ids, which makes a horrible usability.
I like your proposal of doing patchsets as a branch. Sometimes the new patchset are better viewed as a completely different work, in which case it could be based from the parent, but most subsequent patchsets fit better in the branch model. Branched patchsets could then be moved to master as a merge (which is not only better from a history POV, but also in tracking the authorship) or as a cherry-pick (eg. for a typo fix)