I don’t think you can completely dismiss lifetimes, because we can study the for<'a> &'static T <: &'a T relation. In particular, the following error suggests how to handle the code you’ve written down:
error[E0119]: conflicting implementations of trait `main::T` for type `&'static str`:
--> src/main.rs:5:5
|
4 | impl T for &'static str {}
| ----------------------- first implementation here
5 | impl<'a> T for &'a str {}
| ^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `&'static str`
In a similar way, we might imagine that proving dyn Base: T means we can’t directly implement T for dyn Derived.
The only language I know of with both classical inheritance and typeclasses is Scala, but the way typeclasses are implemented in Scala requires giving the instantiations names, and having multiple instantiations in scope for K: T will result in a compile-time error (specifically, an implicit resolution ambiguity error).