Фреймворк нужен чтобы архитектура вашего приложения была понятной, гибкой, слабосвязной(с разными слоями приложения).
Допустим вы написали магазин на фреймворке, потом еще один попросили вас написать. Вы взяли готовые модели, контроллеры, изменили немного, поменяли представление. Легко и быстро это получится т.к вы знаете кто за что и где отвечает в вашем приложении (модель, контроллеры, представление).