Por que as funções virtuais não podem usar a dedução de tipo de retorno?

n3797 diz:

§ 7.1.6.4/14:

Uma função declarada com um tipo de retorno que usa um tipo de espaço reservado não deve ser virtual (10.3).

Portanto, o seguinte programa está mal formado:

struct s
{
    virtual auto foo()
    {
    }
};

Tudo o que posso encontrar para esse raciocínio é essa vaga frase den3638:

virtual

Seria possível permitir dedução de tipo de retorno para funções virtuais, mas isso complicaria tanto a verificação de substituição quanto o layout da vtable, por isso parece preferível proibir isso.

Alguém pode fornecer uma justificativa adicional ou dar um bom exemplo (de código) que concorda com a citação acima?

questionAnswers(3)

yourAnswerToTheQuestion