Why can't traits require Clone?

I hadn't thought about this before, but it seems like there's an interesting concept of "dynamic cloneability" here: i.e., we want to be able to deep-copy objects via dynamic references. The Clonable/CloneDyn trait above seems like a reasonable way to represent it, but the use of Box seems overly restrictive; all that we want is for there to be some way to create a new trait object deep-copied from an existing one.

It seems like representing this in a usefully generic way probably isn't possible without some extra language features, though, such as placement-new and/or some stable way of dealing with unsized types.