Probably because it takes CI extra time to figure out if the requested controller is in a subdirectory, or a sub-sub directory, etc. All it knows is the requested route is 'something/something_else/another_thing'. It doesn't know whether "something" is a controller, or a directory, so it has to look until it finds it. The more layers of subdirectories the more it has to check.