Кстати, хороший вопрос поднят. Все время твердится про то, что пользовательские действия (добавление, отправка запросов и т.п.) должны осуществляться через POST запрос, в то время как django.contrib.auth.views.logout принимает GET.
Так а зачем там получать POST и обрабатывать его? Логаут это действие, которое не меняет данные, оно, наверное, самое безопасное из всего, что делается пользователем. Поэтому это простое обращение на адрес. Без форм, обработак и т.д.
Все логично IMHO.