Попробуйте использовать волшебное заклинание: var_dump($login, $pass, $user, $user == 0); die;
Оно даст точный ответ на вопрос что там у вас не сходится.
У них роутинг на клиенте, поэтому не него и не влияет «переадресация на стороне сервера», она действует только на первый запрос, который, только и долетает до сервера.
Ну, значит, они всё же это фичей считают.
Первый запуск скрипта (нажали enter) легко отличить от повторного запуска, поскольку первый инициализируется скриптом "вручную", а повторный в виде реакции на событие. И, соответственно, легко сделать для него кастомную логику, которую вы описали.