No, it's effectively a memcpy. There are no copy (or move) constructors. If you need to track it, implement Clone but not Copy.
If a type is Copy, you can always call Clone::clone explicitly (since Copy requires Clone). But if you're aware the type was Copy, you generally wouldn't.
Ideally the Clone implementation of a type that also implements Copy should also just effectively be a memcpy, but there's no way to enforce that, and so it doesn't have to be. Some optimizations may do a copy instead of calling clone.
No, because there's no call and no default implementation. Copy is just a marker that means "you can copy this type by just copying its bytes", which then extends into the ownership system by allowing Copy types that have been moved to still be accessible. In both cases the action is copying bytes, which is outside the scope of your type.
No, again because there's no copy. Actually the opposite can happen: the stdlib can avoid calling clone and instead do a byte copy if your type implements Copy.
Even if something is Copy, that doesn't mean it's cheap to copy. A 4kB fixed size array is expensive to copy no matter what you do.
If your concern is that having both means generic code might end up using the "expensive" Clone when the "cheap" Copy is available, don't be. If you derive both Copy and Clone together, the generated Clone just directly defers to a simple Copy operation.
It doesn't have to be,[1] because you can do something entirely different in safe code . And enforcing it with something you can't disable would be a breaking change.
Definitely it should be, and you can't rely on clone being called when you may expect (if you also implement Copy) due to specializing optimizations. If you try to rely on them being different, you will have bugs. On the other hand, code can't rely on them being the same for soundness specifically.
It's similar to having a consistent Hash or Ord implementation in that respect.
The PR that introduced this wording was #33420, and it says:
I tried to use "should" and "must" as defined here.
Which defines "should" as:
This word, or the adjective "RECOMMENDED", mean that there
may exist valid reasons in particular circumstances to ignore a
particular item, but the full implications must be understood and
carefully weighed before choosing a different course.
So yes, it is not exactly the same, but I'll will argue that there it is very rare that you actually need to break this and/or understand the full implications.