Já existem alguns apps com usuários que tem esse protocolo implementado:
É sim, complexo, mas nem todas as aplicações precisam de algo assim.
Os ganhos de UX e simplificação do código fazem essa mudança valer a pena eu diria.
O uso das CRDTs ajuda com a parte de sincronização e entender quem fez o que.
Mas certamente não é ideal pra todo tipo de aplicação. Mas, para apps de produtividade, acho difícil de bater essa arquitetura.