Вопрос гарантий того что решения о изменении стэйта принимаются на основании актуальных данных.
Если у тебя решение о изменении стэйта происходит внутри агрегата, то изменение стэйта в этом случае будет новой пачкой ивентов. В этом случае если кто-то еще паралельно чего-то сделал с тем же агрегатом транзакция зафэйлится (конфликт по версиям ивентов) и в целом ты получаешь гарантии что изменения стэйта будут основаны на актуальных данных.
Если же ты геттер хернул и принимаешь решение менять другие вещи на основе стэйта этого агрегата то ты теряешь эти гарантии (либо тебе надо мутить распределенные локи что больно медленно и сложно).
Именно эту проблему решает CQRS. Грубо говоря как поделить операции таким образом что бы изменение стэйта было всегда основано на актуальных данных. Потому "команды" не возвращают результат операции - мол ты там дальше на ивенты какие-то подписан должен быть что бы потоки данных выстраивались правильно и учитывались штуки типа temporal couping или отложить принятие решение во времени что бы данных накопить.
Если вероятность конкретнтного доступа низкая то ценность в CQRS резко снижается. В том числе и ценность ES для хранения стэйта с агрегатами. Во всяком случае мне сложно придумать задачу сходу где ES хорошо ложится и нет конкурентных действий и проблем с конфликтами.
Есть распространенное мнение что мол "если тебе надо аудит лог изменений бери ES" - так вот - слать в хуй всех этих гениев. Если тебе надо трекать все изменения то куда проще сделать тупой круд с версионизацией данных. Вместо UserProfileChanged стима ивентов проще хранить все ревизии профиля.
Так же есть ситуации когда все что требуется это не процесс описать а просто разрулить конкурентный доступ к данным, в этом случае просто CQRS достаточно.
ES весьма специфичная штука. Далеко не все проблемы оно решает хорошо.
Есть у Грега Янга докладик "The Bizarre Mating Ritual Of The Whipnose Seadevil" где он рассматривает кейсы где ES спасает. Но не надо думать что это сильвербулет и т.д.
Еще одна проблема у людей когда они начинают знакомиться с этими штуками это "если я заюзал ES для вот этой небольшой проблемы значит у меня все должно быть на ES" - это тоже популярное заблуждение и желание людей сделать простой выбор "че в каких ситуациях юзать" за счет устранения выбора.
Что-то мне подсказывает, что это проблемы подхода "натянуть сову на глобус", как в случае EventSourcing, так и в случае CQRS. У этих принципов строго ограниченные контексты действия влияния, и те проблемы того же ES, про которые ты говоришь, они разве касаются ES непосредственно? Это же всего-лишь способ персистенса, и те проблемы которые ты хочешь прикрепить к ES, относятся к Event-driven системам, разве нет?