>ところで、int(a)は型キャストだと思うが、これも右辺値?
キャストは一時オブジェクトを作るので右辺値

>constが絡んでくるとどうなの?
constの右辺値参照引数は意味がない(壊せない右辺値なんて…)ので考えなくていい
const T& と (non-const)T&& でオーバーロードするのが基本

>参照返しがなされたときは?
戻り値の事なら戻り値の型どおり
左辺値参照なら左辺値、右辺値参照ならxvalue

>一時オブジェクトであってもそのオブジェクトを受けた関数側に
>参照引数が使ってある場合、その関数内では左辺値になるよね?
関数内ならそれも引数の型どおり
左辺値参照なら左辺値、右辺値参照ならxvalue

別にゴチャゴチャしてないと思うが
というか右辺値参照の評価が左辺値だったりした昔に比べればずいぶんスッキリした