kobezzza,
Кстати, ты говоришь, это не миксины, но че то сомнительно.
class CatDog extends pluralParent(Cat, Dog) {}
Я честно говоря, не понял до конца, но это выглядит так, как будто он смешивает все хрень в прототипе объекта CatDog. если это так, это тоже частный случай, и это не годится, ибо, он не сможет потом убрать из прототипа отдельно Cat или Dog, либо заменить чем либо.