A nova formas como o Java 8 foi arquitetada foge a Lei de Demeter ? A meu ver a criação da Interface funcional, os default methods, lanbdas e method reference foram projetados justamente para o uso em cascata das funcionalidades, diminuindo assim a quantidade de linhas de código. Ex.: OptionalDouble average = cursos.stream() .filter(c -> c.getAlunos() >= 3) .mapToInt(Curso::getAlunos) .average();