Just curious, when APPPATH/config/routes.php doesn't exist or when it does exist but returns an empty array, the default 404 view is displayed. Why not an ErrorException?
Becauses routes are optional.
If routes are not present, the autodetect functionality, in which a URI is directly mapped to the classes/controller folder, still works.
The only thing that doesn't work is requesting the root, since there's nothing to match, and the _root_ route is missing, giving you a 404.
Thanks for the clear explanation, WanWizard. I guess I should have gotten a clue that routes.php isn't required by it not existing COREPATH/config. Am I thinking right?