Ola, Daniel !
Assunto polemico, rs...
Na verdade tudo depende... depende de como é seu negocio, depende se é um legado que deve ser alterado o MÍNIMO possível, depende se for uma aplicação nova.
E ainda depende do frameWork que esta usando.
EX.:
No caso de estar usando JSF + JPA + BeanValidator. É possível validar se um campo foi preenchido na tela ao clicar no botao no seu XHTML.
Repare que isso por baixo dos panos é um tell dont ask feito pelo frameWork.
No caso que você trouxe como exemplo, você pode ter algumas regras nos seus modelos nas anotações e pode pensar em criar um lugar para manter mais regras de negócios por exemplo uma classe UsuarioService e manter seu controller bem enxuto.
Somente frisando, nesse caso sua classe UsuarioService NÃO DEVE SER UM LINGUIÇÃO, temos que pensar sempre em quebrar em trechos de codigo com uma unica responsabilidade, ou seja, sua classe UsuarioService poderia ter outras varias pequenas classes responsaveis pelas validacoes e essas pequenas classes trabalharem da forma TELL DONT ASK.
Ajudei ? Clareou mais as ideias?
Abraço e bons estudos....