Junta uma implementação que é mais gambiarra que as soluções já existentes, uma justificativa que acabou virando uma mentira. Mais corner-cases que casos comuns. Sintaxe para usos mais avançados lembra templates do c++, para quem não conhece, leia confusa, complexa e pouco intuitiva.
Toda a porcaria que Generics são se deve ao fato da Sun querer manter compatibilidade com versões anteriores e não alterar o bytecode gerado. No final das contas mudaram o formato e não temos como programar com generics para java 1.4.
Erasure gera uma quantidade de corner-cases tão grande que eu não vejo vantagens em usar alêm daquilo que a biblioteca prove.
Generics são uma bomba?

) , mas quem mais vai conseguir entender isso? Vou ter de escrever um artigo “Generics e Collections: o que (não) mudou com o Java 5.0”