Proposed resolution (November, 2017) Change 9.2.9.7 [dcl.spec.auto] paragraph 11 as follows:
Redeclarations or specializations of a function or function template with a
declared return type that uses a placeholder type shall also use that
placeholder, not a deduced type. Similarly, redeclarations or
specializations of a function or function template with a declared return
type that does not use a placeholder type shall not use a
placeholder. [Example:
[Accepted as a DR at the March, 2018 (Jacksonville) meeting.] 9.2.9.7 [dcl.spec.auto] paragraph 13 says, The inverse should also be true (a specialization cannot use
a placeholder type if the template used a non-placeholder), but
this is not said explicitly.
Redeclarations or specializations of a function or function
template with a declared return type that uses a placeholder
type shall also use that placeholder, not a deduced type.