Olá gus.ehr,
E é isso mesmo, segundo o livro que tô lendo: Object Oriented Software Construction do Bertrand Meyer. Um trecho traduzido pra provar: “Em programação orientada a objetos, nós modelamos os objetos em termos do que eles fazem e não do que eles são.”
Levando em conta também que uma classe deve possuir a lógica de negócio, a qual opera sobre os atributos, eu não posso ter um método em uma classe que não aja sobre os atributos dela, e sim de outra. DDD trata também disso, basta ler este texto: http://www.codeproject.com/Articles/339725/Domain-Driven-Design-Clear-Your-Concepts-Before-Yo
Da forma como eu estava fazendo, estava totalmente procedural, e não guiada pelo domínio - já que estava separando os módulos por funções.
O correto seria eu ter a classe Usuario apenas para casos de autenticação e uma classe Relatorio ou Movimentacao a qual faz a movimentação do relatório - como vocês já apontaram anteriormente.
Pelo que andei lendo, DDD parece ser mais fácil do que parece, única coisa que parece um pouco complicada é a persistência - pelo conceito de repository, que ainda é muito controverso o modo de implementação, ainda.
Vou continuar lendo e postando aqui, ou criar outro tópico se necessário.
Muito obrigado a todos, grande abraço!