В принципе все более-менее понятно.
Происходит подключение класса, например use Class.
Если класс не найден, то вызываются зарегистрированные spl_методы.
Метод ищет ключ Class ищет в карте_классов.json (забыл как называется), со структурой "class_path : file_path".
Если находится, то происходит подключение класса (require, include, когда как. Отчего зависит я так и не понял).
Если нет, то ищет в основных папках, массив путей которых тоже хранится где-то в каком-то виде (тут я не уверен, так ли в композере, но в другом автолоадере видел такое).
Если никогда ничего не найдено, то вернёт ошибку.
Вроде так, если кто знает больше - поправьте меня, исправлю ответ.