¿Por qué un solo carácter de subrayado es un nombre ilegal para un parámetro lambda?

Traté de nombrar un parámetro lambda_, p.ej. (una versión reducida):

Consumer<Object> c = _ -> {};

Como quería indicar que se estaba ignorando un parámetro, pero recibí el siguiente error del compilador:

El uso de '_' como identificador está prohibido para los parámetros lambda

Esto fue una sorpresa para mí. Curiosamentedos los guiones bajos están bien:

Consumer<Object> c = __ -> {}; // no compile error

Entonces, no es el carácter de subrayado en general, sino uno solo.

¿Por qué el nombre de subrayado simple está específicamente prohibido?

Respuestas a la pregunta(1)

Su respuesta a la pregunta