Would you want to edit the email inbox format directly, the Git blob database or the AST representation used by your IDE to give code completion and refactoring support?
No, obviously not. But what specifically is it that makes you not want to edit these things directly? In all these cases you want modifications of the underlying data to be such that important invariants are kept. You want only specific operations and transformations to be allowed.
That is what this whole article discusses. The advantages you get from modifying code in a controlled fashion. Once you do that the file format is less important. Do you care what format Git stores data in?
Unison actually started more like Git with a lot of plain text files. But the format was always irrelevant. You were not supposed to edit ASTs directly yourself. They found that going with SQLite gave big speed improvements and space savings.