It does seem to mix a lot together. And the title is easily proved wrong. You can store data as a live object and a linked list of diffs to go further back in time. This is how the git pack file and many backup systems work.
Indeed, that is how git works in general – recording changes as immutable commits, and having one or more heads which point to the new immutable commit.