Как реализовать организацию отдачи статического контента с учетом версионирования?
Костылей городить не нужно. В Джанго все уже есть. Для версий от 1.4.х до 1.6.х специально для этого предусмотрено хранилище статики CachedStaticFilesStorage. Как подключать - по ссылке все описано. А смысл, если вкратце, такой:
Командой collectstatic создаются копии ваших статических файлов с добавлением хэша к именам файлов (хэш вычисляется из контента самого файла). Таким образом, если контент файла изменяется, то изменяется и его название, поэтому браузер вынужден получать новый файл статики с вашего сервера. Если файл не менялся - тянем с кэша браузера, как обычно.
Если вы в самом проекте используете темплейт-тег static (как и должно быть), а не переменную STATIC_URL, то проблем с подключением этого хранилища статики у вас возникнуть не должно.
Да, есть тут один момент. В созданных новых файлах статики все имеющиеся ссылки на другую статику (например в css-файле есть ссылка на картинку) тоже изменяются. Если у вас в файлах есть битые ссылки на статику, то collectstatic свалится с ошибкой.
Завязывать URL на время изменения этого файла.