I implemented pretty much the same trade off set in an authenticated storage system.
single writer, radix merkle tree, persistent storage, hashed keys, proofs.
I guess it is a local maxima within that trade off space.
I like how the time travelling/history is always touted as a feature (which it is), but it really just means the garbage collector/pruning part of the transaction engine is missing. Postgres and other mvcc systems could all be doing this, but they don't. The hard part of the feature is being able to turn it off.
I'll probably have a look around later, the diffing looks interesting, not sure yet if it's done using the merkle tree (likely) or some commit walking algorithm.