Acho que o ponto central do DDD é que você tem que encontrar um design de classes que reflete o seu modelo de domínio. Se o problema que você tá tentando resolver é simples, é contraprodutivo ficar tentando complicar com um design de classe elaborado.
As vezes o problema que você tá tentando resolver é simples e um modelo anêmico resolve (um CRUD simples, por exemplo).
O problema é quando você tem um domínio complexo e usa os objetos só como estruturas de dados. Aí a lógica fica espalhada no código e dar manutenção é um lixo.
Aplicar DDD é difícil. Toda vez que você introduz um conceito novo, tem que adicionar várias classes no projeto. Esse é o preço a se pagar. Contudo, o resultado é que você fica com um código muito mais fácil de dar manutenção.
Um exemplo legal é um guarda-roupas. Você pode otimiza-lo para duas coisas: inserção de roupas ou busca de roupas. Se você quer otimizar para inserção, é só jogar as roupas lá dentro de qualquer forma. Vai ser muito fácil inserir, mas vai ser horrível buscar. O outro caso, a otimização para busca, é você guardar cada peça no seu devido lugar. Vai levar mais tempo para guardar as roupas, mas vai ser bem mais rápido para achar uma peça específica. DDD é otimizar para busca 