Не знаю, как там в koin, но в принципе с любым контейнером можно так:
- пихаем в контейнер Application
- пихаем общие зависимости
- создаём компоненты, которые зависят от Application и регистрируют себя там при своём создании
Или так:
- пихаем в контейнер общие зависимости
- создаём компоненты, реализующие интерфейс, описанный выше
- дёргаем у этих компонентов метод, принимающий Application
Никаких проблем вообще