A primeira vista, poderíamos esperar que o Java 8 mudasse isso. Afinal de contas, uma expressão lambda parece nos afastar da tipagem nominativa:
Este é um método, sem um nome, que não recebe parâmetros e retorna void. Ainda é perfeitamente tipado de forma estática, mas agora é anônimo.
A resposta é, talvez infelizmente, não. A JVM, na qual o Java e outras linguagens executam, é estritamente associada ao conceito de classes. O carregamento de classes (classloading) é fundamental para os modos de segurança e verificação da plataforma Java. Simplificando, seria muito, muito difícil conceber um tipo que não fosse, de alguma forma, representado através de uma classe.