これでいいってことですか?
void add(vector<int> &&x){
 vec.push_back(std::forward(x));
};

あと、
>「常に」ムーブさせたい
という言葉が気になるんですが、右辺値を受け取る場合に「ムーブさせない」場合があるんでしょうか?