Приведу наглядный пример, правда не про веб
Задача - автоматизировать некий документооборот на предприятии (бухучёт, товародвижение и т.п.)
Реализовать можно 2мя способами:
1) Програмим на языке програмирования высокого уровня (на C++, VB или Delphi), цепляем данные в БД (MSSQL или тупо в DBFки валим) - вобщем делаем всё с нуля.
2) Берём некое готовое решение и подгоняем под наши нужды. Ярким примером такова варианта является 1С:Предприятие.
Соответственно в первом варианте мы можем сделать именно то что хотим, правда гораздо дольше. Да и поиск и исправление багов может занять весьма длительно время.
Во-втором варианте мы создаём своё творение из уже готовых элементов, зачастую без использования программирования. Но тут уже про гибкость говорить трудно (если в элементе не хватает какой либо феньки, то придётся перелопатить уйму чужого кода). Попробуйте сделать красивульный интерфейс в 1С как во многих современных утилитках - хренушки у вас что получится. Зато баги за вас ловит и исправляет сторонний разработчик и функционал можно нарастить такой, какой с нуля писать пришлось бы долгие месяцы.
Плюсы и минусы есть в обоих вариантах. Какой выбрать - пусть решает каждый сам для себя.