Если мы решили красиво все писать, то классы лучше хранить в разных файлах, один класс = один файл. Для того, чтобы автоматически подключать модули, легче сделать перебор внутри главного класса, примером использования является сборка всех js файлов из папок модулей
Рекурсия не так страшна, как кажется. Но есть еще отличные, замечательные вещи, которые позволяют делать рекурсию без рекурсии штатными средствами php, и это отличный пример использования RecursiveDirectoryIterator. При поиске имен классов (параметр три) мы подразумеваем, что файлы называются от имени класса, так класс class MyClass будет в файле MyClass.php, а класс MyNamespace/MyClass.php в файле с названием MyClass.php в папке MyNamespace