Por que o padrão é necessário para uma alternância de uma enumeração neste código?

Normalmente, o padrão não é necessário em uma instrução switch. No entanto, na situação a seguir, o código compila com êxito somente quando descomente a instrução padrão. Alguém pode explicar o porquê?

public enum XYZ {A,B};
public static String testSwitch(XYZ xyz)
{
    switch(xyz)
    {
    case A:
        return "A";
    case B:
    //default:
        return "B";
    }
}

questionAnswers(6)

yourAnswerToTheQuestion