Писать свой фреймворк с нуля, достаточно тяжелая задача. Сам участвовал в разработке 1 Perl фреймворка, 2-х на Python и одного на Ruby и еще одного на Go (все проприетарные) :) Однако дает возможность выстроить любую архитектуру под свои нужды. Это имеет смысл если объемы большие - сотни и тысячи парсеров и не устраивает архитектура существующих фреймворков.
Пункты 3 и 4 никак друг другу не противоречат, данные вы храните централизованно в базе. Задачи запускаете распределенно через систему управления задачами (воркеры запускающие парсеры, могут находиться на разных хостах). Прокси должны быть обязательно, вне зависимости от степени распределенности.
По поводу желания запускать только парсинг часть, не уверен что это возможно из коробки, но могу предложить обходной путь. Пишется 2 скрапера - один краулер, второй парсер, который парсит локальные страницы.