¿Por qué no se puede calificar completamente un valor enum en una instrucción de cambio?

(nota: pregunta editada; la intención previa no estaba 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 bien.

Sin embargo, si sustituyo:

case VALUE1: // or VALUE2

con:

case X.VALUE1: // or X.VALUE2

entonces el compilador se queja:

java: /path/to/Foo.java:whatever: una etiqueta de caso de cambio de enumeración debe ser el nombre no calificado de una constante de enumeración

ASI QUEsugiere una respuesta con esta cita del JLS:

(Una razón para requerir el ingreso de constantes es que las instrucciones de cambio requieren constantes en cada caso, y no hay dos valores constantes de este tipo. El compilador verifica valores constantes duplicados en una instrucción de cambio en el momento de la compilación; hacer vinculación simbólica de los valores de los casos.)

Pero esto no me satisface. Hasta donde me concierne,VALUE1 yX.VALUE1 son exactamente lo mismo. El texto citado no lo explica en absoluto para mí.

Donde en el JLS se define queenum valores enswitch ¿Las declaraciones tienen que ser escritas de esta manera?

Respuestas a la pregunta(1)

Su respuesta a la pregunta