があったときに, f を左辺値で呼び出すと T が左辺値参照型で specialize されて f のパラメタの型が左辺値参照型になる,つまり
int i; f(i); // T = int & として f が specialization される. // 結果 f のパラメタの型が & && -> & の decay を受けて int & と同等になる f(42); // T = int として f が specialization される. // 結果 f のパラメタの型が右辺値参照型 int && になる
ということです.これによって f の引数が非 const 左辺値でも const 左辺値でも右辺値でも 問題なく受けられるようになるということを指摘したかったんです.
で,上記の仕様 (引数が左辺値か右辺値かで テンプレートパラメタ T が参照型かそうでないかの違いが生じる) から, f の実装内部において f が左辺値で呼ばれたのか右辺値で呼ばれたのかの識別も可能となります.
この 右辺値参照・参照型の decay ルール・関数テンプレートにおける引数推論規則 の組み合わせで the forwarding problem が完全に解けるというのが現在の提案の骨子だったかと思います.