Clone is a supertrait of Copy, so you have to implement Clone if you implement Copy. That way, all Copy types can satisfy a T: Clone bound.
The clone should just make a copy in that case, and does for all std types. (But the compiler doesn't enforce this and you can't rely on it for safety in a general sense.)
Notionally at least, the .clone() is an additional function call to optimize away (but I wouldn't worry about it (but-but I wouldn't intentionally clone when I could copy, either) ).