Bem, simplificando: as classes aninhadas não violam o encapsulamento e, em geral, os recursos de linguagem não violam os princípios de programação. Programadores violam princípios de programação.
Curiosamente, alega-se que as classes aninhadas aumentam o encapsulamento :
Encapsulamento aumentado - considere duas classes de nível superior, A e B, nas quais B precisa acessar membros de A que, de outra forma, seriam declarados privados. Ocultando a classe B na classe A, os membros de A podem ser declarados privados e B pode acessá-los. Além disso, o próprio B pode ser oculto do mundo exterior.
Há alguma verdade nisso.
Normalmente, B é o resultado da aplicação do SRP a A. O próprio B, no entanto, viola muitos princípios, especialmente se tudo o que faz é brincar com os membros privados de A: D
Eu acho que aulas ocultas podem ser úteis. Mas há muito potencial para uso indevido.