Dal punto di vista logico, se usi una classe per rappresentare in modo OOP i dati prelevati dal DB, qualsiasi classe che appartiene al tuo modello deve restituire oggetti; lascerei la restituzione di DataSet e oggetti affini ad un set limitato di metodi, per eventuali operazioni di contorno, ma la tua interfaccia deve agire sugli oggetti che rappresentano gli elementi del tuo modello, e non sulle origini dei dati, se non indirettamente attraverso i primi.

Ciao!