Ventajas de usar adelante

En reenvío perfecto,std::forward se usa para convertir las referencias rvalue nombradast1 yt2 a referencias rvalue sin nombre. ¿Cuál es el propósito de hacer eso? ¿Cómo afectaría eso a la función llamada?inner si nos vamost1 & t2 como lvalues?

template <typename T1, typename T2>
void outer(T1&& t1, T2&& t2) 
{
    inner(std::forward<T1>(t1), std::forward<T2>(t2));
}