В Краткое введение в Rvalue References, forward определяется следующим образом:
  template <typename T>
  struct identity { typedef T type; };
  template <typename T>
  T &&forward(typename identity<T>::type &&a) { return a; }
Какую цель выполняет класс identity? Почему бы и нет:
  template <typename T>
  T &&forward(T &&a) { return a; }
