All that said, one of the reasons you may like it is because it's basically what everyone actually does.
Please correct me if I'm misunderstanding, but Bram is proposing to do blame without using the diffs, a nice simplification and not something I'm aware of other version control systems doing.
The commits themselves will still, presumably, be generated by diffing. After that, sure, it should be fairly easy to compute exactly what commit contributed each character of a file, and when.
In real life, you get things like replacements of a statement by an if-else block with statements similar to, but not identical to, the original statement in each branch. Are there still parts of the original statement there? If so, in which branch(es)?
Also, suppose I add code in version 6, you remove it in version 14 and someone else resurrects it in version 23. What commit contributed that code? How can you know whether that someone else resurrected the code, rather than write a new copy?
Finally, what is 'contribute'? Does a commit that 'only' moves lines around in online help contribute to a file? What does it contribute? How do you show that contribution in a diff? What if the move also necessitated some minor changes like adding punctuation?
No, you can't do blame without the diffs.
Bram is proposing not attempting to figure out the actual lineage of a line, but instead, when there are multiple possible answers, pick one.
Please correct me if I'm misunderstanding, but Bram is proposing to do blame without using the diffs, a nice simplification and not something I'm aware of other version control systems doing.