Если учесть, что наиболее гибкие, надёжные и расширяемые архитектуры получаются при отказе от наследования реализации вообще (скрытые реализации, создание через фабрики, композиция).
А ещё можно пугать приведениями, лешими и другой нечистью...
Если немного задуматься (и перестать бояться и, как следствие, пугать других собственными страхами)... то наследование интерфейсов - это нонсенс... Поскольку интерфейсы - это просто спецификации/требования, точно такие же (по сути), как спецификации/требования, прилагаемые к чертежам узлов и деталей. И любые узлы/детали, соответствующие данной спецификации, могут быть использованы... В программировании интерфейсы "приклеили" к сущностям, как некие "видимые извне" свойства... получили массу проблем... И теперь их пытаются преодолеть... окончательно, утратив/исказив смысл. Отсюда и фобии...
Всегда прошу так вещающих привести мне пример таких компонентов ПО, которым не хватает производительности одного процессора. А затем оценить в удельном соотношении по строкам кода. Если в 20% всех задач программирования в 20% их кода нужно задействовать много ядер, потому что одно не справляется, то это ещё не повод в оставшемся коде переходить к чему-то другому от наиболее практичного, по интегралу, стиля (императивного объектно-ориентированного).
Из-за того, что отдельные части систем потребовали оптимизации, Вы собираетесь запутывать стиль разработки остальных частей?
Когда-то человеку хватало собственных рук... И попытки объединить/скоординировать усилия нескольких людей, наверно, вызывали подобные... отповеди. Тем не менее... время шло... и усилий одних рук не хватало всё чаще... В окружающем нас мире, всё живёт, развивается и даже умирает... параллельно... не дожидаясь своей очереди у "исполнителя команд".
С другой стороны... какой может быть причина не использовать доступные вычислительные мощности?.. Дело даже не в том, что отдельной мощности может не хватить, а в том, что совместно можно сделать быстрее (при правильном проектировании системы и планировании работ, соответственно). Почему кто-то из пользователей должен расплачиваться за нашу безграмотность?..
И кто с-казал/до-казал/по-казал, что параллельный код запутаннее, чем последовательный?.. Что труднее/затратнее: выдать инструкции сразу всем исполнителям или много раз выдавать последовательные инструкции одному исполнителю?.. Может быть дело в нас самих... привыкших к последовательной выдаче?.. Может быть это нам труднее перестроиться?.. И рассуждения о запутанности и трудностях... только фобии, которых боимся мы и пугаем других?..