¿Por qué las funciones virtuales no pueden usar la deducción de tipo de retorno?

n3797 dice:

§ 7.1.6.4/14:

Una función declarada con un tipo de retorno que utiliza un tipo de marcador de posición no debe ser virtual (10.3).

Por lo tanto, el siguiente programa está mal formado:

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

Todo lo que puedo encontrar para la justificación es esta vaga línea den3638:

virtual

Sería posible permitir la deducción del tipo de retorno para funciones virtuales, pero eso complicaría tanto la verificación de anulación como el diseño de tablas, por lo que parece preferible prohibir esto.

¿Alguien puede proporcionar una justificación adicional o dar un buen ejemplo (código) que esté de acuerdo con la cita anterior?

Respuestas a la pregunta(3)

Su respuesta a la pregunta