Eu estive analisando os chamados "Micro ORMs", como o Dapper, e (em menor grau, pois depende do .NET 4.0) maciço, pois pode ser mais fácil de implementar no trabalho do que um ORM completo desde o nosso sistema atual é altamente dependente de procedimentos armazenados e exigiria refatoração significativa para funcionar com um ORM como NHibernate ou EF. Qual é o benefício de usar um desses em um ORM completo? Parece apenas uma camada fina em torno de uma conexão de banco de dados que ainda obriga a escrever SQL bruto - talvez eu esteja errado, mas sempre me disseram que o motivo dos ORMs em primeiro lugar é que você não precisava escrever SQL, pode ser gerado automaticamente; especialmente para junções de várias tabelas e relacionamentos de mapeamento entre tabelas que são difíceis de fazer em SQL puro, mas triviais com um ORM.
Por exemplo, vendo um exemplo de Dapper:
var connection = new SqlConnection(); // setup here...
var person = connection.Query<Person>("select * from people where PersonId = @personId", new { PersonId = 42 });
Como isso é diferente de usar uma camada de dados do ADO.NET, exceto que você não precisa escrever o comando, definir os parâmetros e suponho que mapeie a entidade de volta usando um Construtor. Parece que você pode usar uma chamada de procedimento armazenado como a string SQL.
Há outros benefícios tangíveis que estou perdendo aqui, onde um Micro ORM faz sentido usar? Eu realmente não estou vendo como isso está salvando algo da maneira "antiga" de usar o ADO.NET, exceto talvez algumas linhas de código - você ainda precisa escrever para descobrir qual SQL você precisa executar (o que pode ficar peludo) e você ainda precisa mapear os relacionamentos entre as tabelas (a parte na qual os ORMs do IMHO ajudam mais).
var dog = connection.Query<Dog>("select Age = @Age, Id = @Id", new { Age = (int?)null, Id = guid });
e depois dog.First().Age
acessar as propriedades.