Why is `copy(adjoint)` not an adjoint object?

More generally, why is copy not preserving the type of the object it is copying?