Eu não diria que são um lixo completo, apenas que são ferramentas que têm sua utilidade, mas que ao longo do tempo foram extremamente abusadas (ou seja, usadas em contextos inadequados, nos quais não eram a melhor solução). O fato de terem sido moda por um longo período ajudou no abuso, e na percepção geral de que seriam ruins pra tudo.
Por exemplo, um erro comum ao usar design patterns é pegar um padrão e tentar encaixar no código de qualquer jeito. Sendo que o correto é o contrário: vc avalia o problema e verifica qual padrão seria mais adequado para resolvê-lo (em outras palavras, vê qual é o problema e procura a solução, em vez de pegar uma solução e tentar encaixá-la no problema). Neste caso, o problema é do padrão em si, ou de quem tentou usá-lo errado?
Pra complementar, seguem alguns links relevantes:
- Por que orientação a objetos não serve para a maioria dos cenários?
- Quais as limitações do paradigma orientado a objetos?
- Qual o overhead de utilizar orientação a objetos?
- Quais são as escolas de orientação a objeto existentes? - Esse eu considero o principal para todo mundo entender que orientação a objeto é mais complicado do que parece