Por que a covariância do tipo retorno é imposta para métodos estáticos ocultos?

Este código não será compilado devido aoString tipo de retorno dostaticMethod noChild.

class Parent {
    static void staticMethod() {    
    }
}

class Child extends Parent {
    static String staticMethod() {
        return null;
    }
}

Eu sei que o JLS 8 em §8.4.8.3, "Requisitos em Substituir e Ocultar" diz:

Se uma declaração de método d1 com o tipo de retorno R1 substituir ou ocultar a declaração de outro método d2 com o tipo de retorno R2, d1 deverá ser substituível pelo tipo de retorno (§8.4.5) para d2, ou ocorrerá um erro em tempo de compilação.

Minha pergunta é qual tem sido a motivação para essa verificação em tempo de compilação no caso específico de métodos estáticos, um exemplo que ilustra que a falha em fazer essa verificação durante a compilação produziria problemas seria ideal.

questionAnswers(3)

yourAnswerToTheQuestion