Для быстроты разработки. Для исключения большинства популярных ошибок. Для предоставления некоего стандарта, что опять ведет к быстроте разработки. Для предоставления готовых функций, чтобы не писать велосипеды, что опять таки ведет к быстроте разработки.
Но при этом фреймворк это не готовый продукт, и не накладывает много ограничений.