Я уже не помню, какую решали проблему изначально. Потом уже развили идею до фичи.
Решали проблему биндинга на глобальный интерфейс разных реализаций для разных модулей. Например, глобально для приложения CacheInterface => FileCache::class, а в модуле я хочу CacheInterface => RedisCache::class. А потом побочно уже возникла фишка инкапсуляции внутренней логики модуля в локальном контейнере модуля, недоступном из приложения и других модулей.