Принципиальная разница в скорости разработки и внесения изменений.
Допустим, нам нужно отдать несколько витрин о продажах с немного разной логикой разным заказчикам.
Кимбалл: построим их на источниках! Да у них будет очень похожая логика загрузки, но зато мы сделаем это быстро. Увы, единой правды у нас при этом скорее всего не получится. Когда хранилище станет большим, придется тратить много усилий на поддержку т.к. изменения в источнике нужно будет учитывать в нескольких местах.
Инмон: Сначала номализуем все и сделаем единую версию правды. В данном случае разложим все продажи в едином для всех виде. а над ней уже построим все витрины, которые нужны пользователям, где реализуем именно ту логику, которая нужан им.
По сути, хранилище можно начать строить, опираясь на любой подход. Если начать с Кимбалла, то в итоге рано или поздно родятся какие-то промежуточные таблицы с единой правдой и модель станет похожа на datavault. Если начинать с datavault'а, то все равно придется иногда делать кастомные витрины на источниках, когда нужна не единая правда, а именно та логика, которую хочет пользователь. Таким образом, в реальности мы получаем некую смесь этих двух подходов.