Мне кажется это дело вкуса + в этом варианте доп. проверки надо ставить на валидность get параметра, а не только его так сказать правильность)
Да вот как раз дело удобства. Так у вас всегда простой способ поменять страницу: добавить в GET параметры page. Этот способ легко реализовать как в Python так и через JS. Не нужно использовать {% url %} или resolve, который в JS вообще нет. К тому же встроенные CBV работают с GET параметром, как и множество готовых приложений.
Валидность решаемтся элементарным except (TypeError, ValueError), да и вся проверка и получение страниц уже есть в Django.