На компонентах толком никак.
Выносите сложную логику в сервисы (CRUD REST Service и т.д) и инжектите эти сервисы на локальные компоненты.
Вообще инкапсулирование шаблонов и стилей в отдельные пакеты очень сильно ограничивает при решении реальных задач.
Виталий, всегда есть две крайности, нужно искать баланс. Слишком универсальные инструменты неизбежно превращаются в монстров, а слишком простые не решают проблем.
Виталий, сейчас затягивая компонент - мы не можем менять его код(функционал) и шаблон напрямую. Только через параметры и проекцию контента (но это всего-лишь отображение переданного).
Но, если отказаться от инкапсуляции стилей, то оказывается, что только css недостаточно для нормальной кастомизации под конкретные задачи и приходится выдумывать ужасные костыли.
Тут лично я вижу 2 подхода: (1) параметризация и (2) вынос в общую либу только сложного функционала, а стили-шаблоны уже держать внутри каждого уникального проекта свои.
На практике в сложных проектах рано или поздно (все чаще - рано) приходится отказываться от готовых либ компонентов из-за необычных требований, к которым эти компоненты не готовы.
<child [fn]="fn"></child>