Это ничего не нарушает, взять тех же лидеров маркетплейса Аспро, у них простые компоненты добавлены в код других простых. Проблемы с кешированием действительно есть, но их можно решить простой конструкцией, привожу пример кода вызова компонента внутри другого:
"USE_PRICE_COUNT" => "Y",
"USE_PRODUCT_QUANTITY" => "N"
),
$component
);?>
Вот этот $component решает проблему кеширования.
Отключать кеш родительского компонента - вот всем костылям костыль, и нарушение методологии Битрикс...