I believe earlier versions of Rust had explicitly named impls that you had to bring into scope. This probably would have provided the kind of expressiveness that you are asking for here, but it had other downsides.
(Of course, explicitly named and imported impls is certainly not the same as the crate-local impl
change that you two are each proposing. But I’m not convinced the ergonomics wouldn’t go bad in some other way due to the impls not being available within the context of ff
that is using dd
and ee
.)