Когда виртуальное поведение скрывается в невиртуальной функции, то это шаблон "шаблонная фукнция" (без полиморфизма тоже применимо). В данном случае "шаблонная фукнция" не только обработку исключений делает, но и обеспечивает вызов виртуальных функций auth и valid в правильном порядке.