[W]e argue in this paper that pure state-based CRDTs can be efficiently implemented by encoding states as specialized Merkle trees, and that this approach is well suited to open networks where many nodes may join and leave.
When I looked at ATProto's repository structure, I couldn't help thinking that it was really very close to being a CRDT.
This paper describes more or less what I had in mind.