Exacto, esa sería la idea de orden de campos.
Cita: a que te refieres con esto"En estos casos el uso de tablas InnoDB tiene más impacto que el orden de las tablas."?
Es un tema de la lógica interna del MySQL y de las bases relacionales en general.
Las tablas relacionales (que en MySQL sólo son las InnoDB) crean un índice que le permite al DBMS administrar las claves y los registros relacionados entre tablas. En ese contexto, la existencia de un índice permite al parser que se pueda establecer sin abrir las tablas si existe algún registro cuyos valores buscados coincidan con un criterio inicial: El del JOIN.
Si la clave buscada es parte de la clave relacional y no existe ninguna entrada en el índice que la contenga, simplemente las tablas se descartan y la respuesta es una tabla vacía.
Si el valor es parte de la clave, entonces sólo se buscan los registros que aparecen indicados en el índice, si es que son menos que toda la primera tabla... Si son más, o no aparece el valor en la clave, leen sólo los que están relacionados y luego se filtra el resto de las condiciones.
Cuando las tablas no son relacionales, no existe indice que vincule ambas tablas, por lo que debe leer toda la primera tabla comparándola con la segunda, lo que es algo más ineficiente que en el caso anterior. En estos casos es conveniente que la primera tabla sea siempre la que contenga la menos cantidad de registros para hacer un matching más eficiente. En el caso de las tablas no relacionales es imposible para el parser devolver una tabla vacía cuando no hay coincidencias sin antes leer ambas tablas... conlo que lo que hace es desperdiciar tiempo de procesamiento.
Como podrás notar, son problemas de lógica interna que no son visibles para el usuario. Sólo se estudian en profundidad en las carreras de informática...