Me parece que, aparte de lo ya mencionado, la mayor ventaja de tener un DataSource es la habilidad para habilitar/deshabilitar los controles asociados DataSet agrupandolos de la manera que te convenga.
Tenes un control bastante granular, puesto que podes tener varios datasources asociados a un solo dataset, dependiendo de la funcionalidad que busques. Y los diferentes controles db-aware asociados a uno u otro DataSource.
No se me ocurre ahora un ejemplo práctico, pero en el campo de batalla me he valido de esto mas de una vez.
Otra característica que me parece importante, en un diseño con Módulos de datos, es la capacidad de añadir ciertos eventos que se ejecuten globalmente para el datasource, sin tener que asociarlos a los eventos del dataset. Eventos como OnDataChange, OnStateChange y OnUpdateData, son ideales para llevar a cabo tareas típicas de la interacción con el usuario, sin dejar vínculos entre tu DataModule (capa de acceso/manejo de datos) y el FrontEnd.
Hasta luego.
