I think this is due to a confusion between the two kinds of "move" in the article.
Returning a value from a C++ function is a "move" in the Rust sense. It's not a move in the C++ sense, since C++ moves involve move constructors.
It's probably this confusion that led to it being written that way, probably should be fixed.