Bem, vc vai achar muitas opiniões diversas, cada um pensa de uma forma, portanto ainda não cheguei a uma conclusão do que é o certo, sendo o certo para mim é aquilo que funciona, é simples e escalavel.
Mas cuidado, vc pode viajar e criar um monstrinho e depois ver que nada deu certo. O que eu aconselho vc a fazer, caso seja um projeto importante, não invente, use o que vc sabe.
Eu gosto muito dessa forma de pensar, as entidades um pouco mais inteligentes, porém a sua equipe tem que ser um pouco mais avançada, vc dificilmente acha pessoas que consigam programar DDD dessa forma descente, na maioria das vezes sai mostrinho. Aqui no meu trabalho estamos aos poucos mudando, dando inteligencia para as entidades, mas uma coisa de cada vez, primeiro incluindo mais lógica de negocio para elas, porém nossas buscas continuam em DAO`s separados da entidade.
Se você passar uma interface DAOFactory para a entity até que não fica muito estranho.
Mas eu não criaria a DAOFactory dentro da entity não, porque se amanha você quiser usar a DAOXMLFactory ou DAOTXTFactory ou DAOHellFactory você não vai poder mesmo que elas tenham o método getPessoas.