Otro enfoque al segundo punto, que en algunos casos podría ser práctico, es el que expone
Wayne Niddery en su artículo
Can Good Object-Oriented Design include Data-Aware Controls?, que básicamente consiste en insertar un clientdataset entre el objeto de negocios y los controles
data aware:
DataSet final <--> Objeto Negocios <--> ClientDataSet <--> Controles data aware
El objeto de negocios contendría el ClientDataSet y se encargaría de transportar la información entre éste y el DataSet final, validando todas las reglas del negocio. Este paso de información sigue siendo manual, pero se hace sólo en este punto y todos los formularios se conectarían de la manera tradicional via un DataSource.
// Saludos