MVC e MVP são conceitos bem dificeis de serem entendidos e mais complicados para serem implementados.
Sou adepto do MVC/MVP e cheguei a conclusão que sem usar um framework é muito trabalho para pouco resultado (vc pode tirar esta conclusão dos 2 exemplo que paulo pos na revista clubedelphi e que o link foi mostrado aqui). Que fica separado fica, mas a que custo? E por que separar tanto? Pense nisso! Para aplicaçòes OO acho que é uma boa mas para aplicações usando Dataset, acho uma bobagem, o que tem de fazer é separar apresentação de acesso a dados. Faz o seguinte, tudo que for logica de apresentação fica no form, incluindo aqui o datasource. O resto você poe no datamodule. Se usando 3 camadas melhor ainda. Se seu form precisar de qualquer coisa relativa aos clientdatasets que estão no Datamodule, crie métodos no datamodule que dê o que vc precisa. E quando puder dê uma olhada em projetos que visam sistemas totalmente OO como o Infra, PressObjects, tiOPF, Jazz, InstantObjects, etc...