It has to be. For major upgrades, like 1.9 -> 2.0, the database tables that the login code uses may have changed a lot between releases, so require_login cannot work until after the upgrade is comlete.
This is why you should put your site into maintenance mode before starting to upgrade.