ShotgunHieroObjectBase is a mixin.  The functionality needs to be reused and we needed to subclass from different built in Hiero classes, so while not absolutely necessary or prescribed (as much as this stuff has a prescription), it does feel like a clean implementation.  In general yes multiple inheritance is to be avoided, but the mixin pattern (when applicable) is clean and powerful while avoiding most of the issues with multiple-inheritance and is worth considering if it seems like a good fit for the problem at hand.