This isn’t actually negative reasoning at all, in fact its a form of implication bounds: Self: Sized => Self: Clone (Self: Sized implies Self: Clone). Normally we think of implication bounds as something like T: Foo => Arc<T>: Foo, but this is the same concept.
And though it isn’t implemented in the surface syntax, chalk is powerful enough that it could solve a bound like this already! So this feature is not impossible, but probably won’t be implemented in rustc very soon because it isn’t high priority.
(A negative bound would be the opposite: “self is not clone if it isn’t sized;” that’s actually an implication bound joining two negative bounds!)