Его, кстати, как раз сложно назвать коробочным. Он совсем не даёт готовых решений под всё из коробки. Он даёт основу.
Уже поверх этой основы выбираешь, что дальше использовать, и вставлять.
В более коробочных фреймворках из коробки будет больше всего зафиксированно. Например, будет сразу одна конкретная ОРМ, которая жёстко интегрирована во фреймворк. Не только в том, что "она предустановлена", но и в том, что с ней будут из коробки взаимодействовать многие компоненты фреймворка.