В очень узком смысле ответ «Да»: если предположить, что ваши базовые классы или интерфейсы предназначены для одной цели, наследование их обоих создает класс с множеством обязанностей. Однако, является ли это "плохой вещью", зависит от природы классов или интерфейсов, которые вы наследуете.
Вы можете разделить ваши классы и интерфейсы на две основные группы: те, которые касаются существенной сложности вашей системы, и те, которые касаются ее случайной сложности. Если наследовать от нескольких классов "существенной сложности", это плохо; если вы наследуете один «обязательный» и один или несколько «случайных» классов, это нормально.
Например, в биллинговой системе у вас могут быть классы для представления счетов и циклов выставления счетов (они касаются существенной сложности) и классы для сохраняющихся объектов (они обращаются к случайной сложности). Если вы наследуете так
class BillingCycleInvoice : public BillingCycle, public Invoice {
};
это плохо: на вас BillingCycleInvoice
лежит смешанная ответственность, поскольку она связана с существенной сложностью системы.
С другой стороны, если вы наследуете так
class PersistentInvoice : public Invoice, public PersistentObject {
};
с вашим классом все в порядке: технически он обслуживает две проблемы одновременно, но, поскольку только одна из них важна, вы можете списать наследование случайной как «затраты на ведение бизнеса».