n3797 says:
§ 7.1.6.4/14:
A function declared with a return type that uses a placeholder type shall not be virtual (10.3).
Well, the deduced return type of the function only becomes known at the point of function definition: the return type is deduced from the return statements inside the function body.
Meanwhile, the vtable is built and override semantics is checked based purely on function declarations present in the class definition. These checks never relied on function definition and never needed to see the definition. For example, the language requires the overriding function to have the same return type or a covariant return type as the function it overrides. When non-defining function declaration specifies a deduced return type (i.e. auto without trailing return type), its return type is unknown at that point and remains unknown until the compiler encounters the definition of the function. It is not possible to perform the aforementioned return type check when return type is unknown. Asking the compiler to somehow postpone the return type check to the point where it becomes known would require a major qualitative redesign of this fundamental area of the language specification. (I'm not sure it is even possible.)
Another alternative would be to relieve the compiler of that burden under the blanket mandate of "no diagnostics is required" or "the behavior is undefined", i.e. hand the responsibility over to the user, but that would also constitute a major deviation from the former design of the language.
Basically, for a somewhat similar reason you cannot apply the & operator to a function declared as auto f(); but not defined yet, as the example in 7.1.6.3/11 shows.