oo.Factory inheriting from oo.Registry is a good example for bad inheritance as it is a violaton of the Liskov substitution principle.
Instead this would be a good case to use object composition.
OOjs might be a nice approach to get some common way of doing inheritance in different MW extensions and core. OOjs doing the "OO" (Object Oriented) part wrong internally though does not really shine a bright light on it.