This is indeed standard compliant. §14.5.7/2:
When a template-id refers to the specialization of an alias template,
it is equivalent to the associated type obtained by substitution of
its template-arguments for the template-parameters in the type-id of
the alias template.
Now, consider that during template argument deduction, only the type of the parameter (in terms of template parameters) is inspected - §14.8.2.1/1:
Template argument deduction is done by comparing each function
template parameter type (call it P
) with the type of the
corresponding argument of the call (call it A
) as described below.
According to the first quote, the type of the parameter, i.e. forwarding_reference<T>
, is equivalent to T&&
. Hence P
is T&&
and there can be no difference regarding deduction.
This same conclusion was made by the committee in a defect report concerning this exact scenario, #1700:
Because the types of the function parameters are the same, regardless
of whether written directly or via an alias template, deduction must
be handled the same way in both cases.