Buenas,
Te gustan porque las clases anónimas son muy útiles, ya que es una estructura que te permite hacer algo que no se puede hacer de ninguna otra forma. Yo las he usado un montón y las sigo usando cuando no desarrollo en Java 8, por supuesto!.
Sin embargo, tambien creo que es un modelo poco afortunado y que no ha tenido mucho éxito. De hecho Java es el único lenguaje que ha optado por una solución como esta para resolver los punteros a función.
Todos los lenguajes que conozco (C, Python, JavaScript, PHP, C#, Go) utilizan una solución de alguna forma basada en closures, incluso aquellos que se basaron en la sintaxis Java (C# y de alguna forma Go) desecharon desde el principio el mecanismo de funciones anónimas y adoptaron el de closures.
De cualquier forma, la sustitución de las funciones anónimas no deja de ser un tema "cosmético". Como comentaba más arriba, para mi lo más importante y potente que ofrecen los lambdas es que permiten paralelizar tareas de forma trivial. No hace mucho, puse un ejemplo para hacer un cálculo utilizando todos los cores del procesador sin necesidad de declarar ni un solo thread, usando lambdas;
http://www.forosdelweb.com/f45/canti...iempo-1111410/
Agrego un par de reflexiones sobre las clases anonimas cuando se comenzo a hablar de usar closures para reemplazarlas. Son James Gosling (creador de java) y Brian Goetz (ingeniero en Sun)
https://blogs.oracle.com/jag/entry/closures http://www.ibm.com/developerworks/library/j-jtp04247/
James Gosling hablando de las clases anonimas:
"
[...] In the early days of Java the lack of closures was pretty painful, and so inner classes were born: an uncomfortable compromise that attempted to avoid a number of hard issues. But as is normal in so many design issues, the simplifications didn't really solve any problems, they just moved them. We should have gone all the way back then.[...]"
Un saludo