Depinde într-adevăr de tipul de date pe care le aduceți înapoi. Dat fiind că un DataSet este (în fapt) doar o colecție de obiecte DataTable, puteți returna mai multe seturi distincte de date într-un singur obiect și, prin urmare, mai ușor de gestionat.
Din punct de vedere al performanței, este mai probabil să obțineți ineficiență din interogările neoptimizate decât din alegerea "gresită" a construcției .NET. Cel puțin, asta a fost experiența mea.