Si sono d'accordo con te!
Io di norma uso i datareader e lancio i comand direttamente senza usare bindingsource, dataset ed affini.
In questo caso mi son trovata costretta perchè con il metodo dataReader() ci metteva un sacco ad applicare i "filtri al volo" (tipo scrivendo in una textbox) ai dati delle datagridview e comunque sto usando alcuni componenti che si associano solo a dataset.

Ma non pensavo avesse tutti sti limiti...