Я тоже задумывался над этим.
Особенно был такой вопрос когда использовать Gulp, Когда Webpack, а когда Bower.
Все частично имеют похожие функции, некоторые, один может использовать другой.
Отвечают Они за сборку проектов(автоматизация компиляции с ES6, TypeScript, Sass, Less в понимаемые браузером ES5 и CSS) минификация, локальные сервер, автокомпиляция после изменения файла. Так же как Bower например неплох для верстальщиков, в паре с Gulp/ помогает удобнее управлять зависимостми для проэкта чем npm а работает походу поверх его. короче. Начни использовать что то одно и суть поймешь. А кстати в React или Angular2+ уже в конфил webpack лучше не лезть, создатели фремворка уже его настроили.