The title is lengthy, but it boils down to this:
If I have a trait MyRead and I want to implement Read for all T: MyRead, I should be able to do so because I own MyRead and the impl of Read would (should?) only come into scope for type T: MyRead if and only if MyRead is also in scope.
There must be a major hole I am missing, but this would seriously reduce code in a lot of libraries, i.e. implementing traits onto owned types individually.