Синтаксис для универсальных ссылок

Это ссылка на значение:

void foo(int&& a);

Это не связывает с lvalues:

int i = 42;
foo(i);   // error

Это универсальная ссылка:

template<typename T>
void bar(T&& b);

Он связывается с rvalues, а также с lvalues:

bar(i);   // okay

Это ссылка на значение:

template<typename T>
struct X
{
    void baz(T&& c);
};

Это не связывает с lvalues:

X<int> x;
x.baz(i);   // error

Почему универсальные ссылки используют тот же синтаксис, что и ссылки rvalue? Разве это не ненужный источник путаницы? Рассматривал ли комитет когда-нибудь альтернативные синтаксисы, такие какT&&&, T&*, T@&nbsp;или жеT&42&nbsp;(шучу над последним)? Если да, то каковы причины отказа от альтернативных синтаксисов?