1. a) Код sorl чуть более чем на половину — пример того, как не нужно писать на python. б) Когда у нас в команде стоял сходный вопрос, я не нашел решений под нашу задачу, в итоге мы взяли базовый функционал sorl, чуть переписали процессинг изображений и api и получили себе отдельный blueprint который ресайзит и кеширует картинки.
2. Jinja так же расширяема, но код выйдет посложнее чем в django templates. Для всяких мелочей в jinja_env.globals можно добавляють собственные методы.
3. У Jinja есть поддержка макросов. В общем-то большую часть таких штук делают через них.
4. Батарейки
на pypi или
отдельно
5. Спорный вопрос, что считать большим проектом? Как организовать архитектуру? И т.п. Готовы ли вы с нуля написать что-то привычное в мире django?