Breaking complexity, and ensuring it stays broken. "This data is read only, you shall not corrupt our state, deal with it" is an even more important design pattern than a shared domain vocabulary.
You surely don't know if there exists a practical real world application which only uses function. (Because you don't have access to codebase of all real world applications).
That's why your statement is logically wrong. I have no more word to say here.
I never said that. I said you can’t _only_ write functions. If you model properly, you absolutely can have a purely function based system. But if you skip the modeling and listening step, you will 99% end up with junk.
Hehe, actually, i intentionally use the "useful software", instead of perfect, good design, scalable,... software. If you skip that details, all furthur logic will be in wrong context.
DDD starts with listening to the subject matter experts (the business) and agreeing on language and models.
You can write a hundred functions that look good, but if it isn’t aligned with how the business thinks, you will have built spaghetti code.