Webpack позволяет загрузить определенный код только если нужен на странице.
Допустим у вас есть скрипт карусели, которая используется на отдельных страницах, но далеко не на всех и вы не хотите загружать этот код для всех 100 страниц. Webpack позволяет задать условие при котором скрипт будет загружен, а на остальных страницах он загружен не будет. См. require.ensure.
Можно собрать общий файл, где будут только используемый на всех страницах код... или если он используется определенное количество раз. И отдельно файлы, которые будут подключаться только при необходимости.
Дополнительно он может убирать неиспользуемый код. Т.е. вы написали какую-либо функцию, но она стала ненужной и ни разу не вызывается - Webpack позволяет проанализировать код и удалить неиспользуемое.
Можно так же написать
if (false) {...}
И webpack удалит этот код, т.к. он никогда не будет исполнятся (допустим это можно использовать для дебага, а вместо false использовать if (isDebage) {}. isDebage задавать извне скрипта). См tree shaking.
Так же Webpack позволяет обработать как скрипты (например, с помощью babel), так и стили (например, postCSS) и другие ресурсы. В том числе он позволяет в код подключения скрипта добавлять хэш скрипта, что позволяет сбросить кэш у посетителей при обновлении бандла.
Также есть очень удобный сервер для разработки с горячей перезагрузкой модулей (а не только LR).
Есть и другие плюшки.