В каком-то смысле да. Хотя вообще задачи и смысл фрейворков этим не исчерпываются. Например, dependency injection (в angular) - это декларативное описание взаимных зависимостей между элементами системы. Вместо того, чтобы руками (императивно) создавать сервисы, контроллеры и т.д. и потом руками же связывать их друг с другом, мы предоставляем эту работу фреймворку.