Sono d'accordo sul fatto che l'estensione di un oggetto dovrebbe essere effettuata per rendere l'oggetto più specifico, tuttavia in alcuni casi risulta difficile creare oggetti non amorfi.
Specialmente quando si ha a che fare con le interfacce grafiche, per molti aspetti e' più comodo estendere un oggetto Frame e similari, piuttosto che istanziarne uno all'interno delle proprie classi. Se poi i nostri oggetti sono già figli di qualcun altro per motivi loro, diventa quasi naturale arrivare ad avere oggetti "amorfi" e una sorta di ereditarietà a cascata in cui qualche classe della catena non c'entra molto con le altre.

Mi rendo conto che un discorso del genere è un po' vago. In effetti penso che molto dipenda dal caso di programmazione in cui ti vieni a trovare : a volte c'è un'alternativa elegante che rispetta il paradigma Java, altre volte c'è ma adottarla implica incasinare il tutto...