DataTables ao invés de DataReaders: boa prática? (C#)

E ae, pessoal do GUJ!
Tudo bem?

Bom, o próprio título já diz: vale a pena trabalhar só com DataTables ao invés de DataReaders?
No caso, queria trocar o clássico:

public IList<Cliente> RecuperarTodos()
{
    String sentencaSelect = "SELECT * FROM CLIENTES";
    IList<Cliente> clientes = new List<Cliente>();
    using (OracleCommand commandSelect = new OracleCommand(connection, sentencaSelect))
    {
        using (OracleDataReader readerSelect = commandSelect.ExecuteReader())
        { 
            if (readerSelect.HasRows)
            {
                while (readerSelect.Read())
                {
                    clientes.add( RecuperarObjeto(readerSelect) );
                }
                readerSelect.close();
            }
        }
    }
    return clientes;
}

por:

public IList<Cliente> RecuperarTodos()
{
    String sentencaSelect = "SELECT * FROM CLIENTES";
    IList<Cliente> clientes = new List<Cliente>();
    using (OracleDataAdapter adapterSelect = new OracleDataAdapter(connection, sentencaSelect))
    {
        DataTable datatableClientes = new DataTable("CLIENTES");
        adapterSelect.Fill(datatableClientes);
        foreach (DataRow datarowCliente in datatableClientes.Rows)
        {
            clientes.add( RecuperarObjeto(datarowCliente) );
        }
    }
    return clientes;
}

Quais as vantagens que vocês veem de fazer essa troca?
Valeu, abraço!