Oi Rodolfo,
Acompanhando a ótima thread entre você e o Cláudio, gostaria de acrescentar um comentário:
Muitos autores não consideram mais um "pecado" realizar acessos diretos entre componentes de interface e componentes de acesso a dados; "pulando", assim a camada de negócio. Isto porque não é muito difícil de enxergarmos o quão ineficiente é recuperar um conjunto de registros de uma entidade no banco de dados e fazer com que eles simplesmente "passem" pela camada de negócio. Neste caso, esta camada não acrescenta valor ao processo. É como se um produto estivesse passando em uma máquina que não faz absolutamente nada para agregar valor a ele em uma linha de produção.
Neste caso, pense no local onde as responsabilidades devem estar. Também lembre-se que redundância de verificações não é proibido. Quantas chaves você usa para, saindo da rua, chegar à gaveta mais importante do seu armário?
Pense em camadas adaptadoras (adapters) e camadas de fachada (Façades) entre os componentes principais de cada camada. Estes adaptadores e fachadas podem servir para normalizar as diferenças que obviamente você vai encontrar quando estiver usando diferentes bancos de dados (DBF, SQL Server, Oracle, MySQL, etc) e diferentes interfaces de usuário (Win32, Web, Mobile, etc).
Um abraço!