Por que um valor de enum não pode ser totalmente qualificado em uma instrução switch?

(nota: pergunta editada; a intenção anterior não estava clara)

Considere este código:

public final class Foo
{
    private enum X
    {
        VALUE1, VALUE2
    }

    public static void main(final String... args)
    {
        final X x = X.VALUE1;

        switch (x) {
            case VALUE1:
                System.out.println(1);
                break;
            case VALUE2:
                System.out.println(2);
        }
    }
}

Este código funciona bem.

No entanto, se eu substituir:

case VALUE1: // or VALUE2

com:

case X.VALUE1: // or X.VALUE2

então o compilador reclama:

java: /path/to/Foo.java:whatever: um rótulo de caso de comutador enum deve ser o nome não qualificado de uma constante de enumeração

ASSIMsugere uma resposta com esta citação do JLS:

(Uma razão para exigir inlining de constantes é que as instruções switch exigem constantes em cada caso, e não há dois valores constantes iguais podem ser o mesmo. O compilador verifica os valores constantes duplicados em uma instrução switch em tempo de compilação; fazer ligação simbólica de valores de caso.)

Mas isso não me satisfaz. Tanto quanto eu estou preocupado,VALUE1 eX.VALUE1 são exatamente os mesmos. O texto citado não explica nada para mim.

Onde no JLS é definido queenum valores emswitch declarações devem ser escritas dessa maneira?

questionAnswers(1)

yourAnswerToTheQuestion