それ以前にC++の言語仕様上、不可能ではないかという気がした
int &&r = 0;
int &l = r;
hoge(r);//右辺値参照を渡す
hoge(l);//左辺値参照を渡す。rと区別がつかない