Оптимален ли такой JOIN запрос?
Посмотреть реальный порядок операций можно, использовав EXPLAIN - он зависит от решений принятых оптимизатором. Которые в свою очередь зависят от индексов размера данных и распределения данных и факторов специфичных для конкретной СУБД.
Это очень сильно зависит от конкретной реализации парсера-оптимизатора запросов. 
Но чисто сферически лесенка из пары-тройки inner join посильна любому оптимизатору.