> let the ZFS snapshots handle the versioning/rotation which would give you the benefits of block level diffs
Can you explain this a bit? I don't know anything about ZFS, but it sounds as though it creates snapshots based on block level differences? Maybe a git-annex backend could be written to take advantage of that -- I don't know.