Например замена стандартной реализации. Есть модуль shop в нем есть CartInterface и стандартная реализация SimpleCart. Ты делаешь пакет с ComplexCart и в провайдере переопределяешь интерфейс. После установки пакета приложение уже работает с твоей новой корзиной. Хотя это все конечно можно и через ручное конфигурирование сделать.
Получается, есть пакеты, которые должны быть выше приложения, а есть какие ниже. Печаль(