Quando eu estava começando a programar em Java, o fato de que as instruções do switch não usavam strings me frustrou. Então, ao usar o Enums, percebi os benefícios que você obtém com eles, em vez de transmitir valores brutos - segurança do tipo (que facilita a refatoração) e clareza para outros desenvolvedores.
Estou lutando para pensar em uma situação em que, com o SE7, agora decidirei usar um switch com strings como entradas, em vez de Enums. Se eles são implementados através da alternância de cadeias inteiras (por exemplo, em vez de correspondências parciais ou regex), não parece oferecer menos motivos para a alteração do código.
E com as ferramentas IDE e a taxa de leitura / gravação da codificação, eu ficaria muito mais feliz ao gerar um Enum extra do que passar valores de string.
Que benefício eles trazem para nós como programadores? Menos caldeira?
Não parece que o idioma estava clamando por esse recurso. Embora talvez haja um caso de uso que estou ignorando.