It's not about cost of correct code, it's about accidental wrong code.
That’s really not a thing. By default it is correct, you have to go out of your way to make it incorrect.
It's actually really easy...
std::vector<int> a = {1,2,3};
// Added this without thinking about future uses of a.
std::vector<int> b = std::move(a);
use_vec(b);
// ...
use_vec(a);