Yes. I am a little unclear about the need to remove references to classes.
While this may be a good thing in general, clearly plugins are going to
reference classes from other plugins. Clearing up this one case does not
solve the problem. So what am I missing here? Are you proposing that all
cross plugin class references use some sort of service registry mechanism?
As a point of interest, how does that work for subclassing, implementing,
casting etc style relationships?
Since this is not a strongly enforced convention, we may have problems
going forward with unnecessary coupling arising from this. I guess this
dependency is flagged broadly under the <requires> element.
The <requires> elements tell you that if A requires B and B is shutdown,
replaced, ... A needs to do something. The straightforward approach is to
shutdown and restart all the dependents (or the whole platform) in these
situations.