Bueno, en realidad es bastante simple en apariencia: Estás invocando tres tablas, pero sólo relacionas dos... Ergo, con la tercera se produce el producto cartesiano.
El JOIN implícito (la coma) sólo funciona como INNER JOIN cuando los campos relacionados entre dos tablas
tienen el mismo nombre, que no es el caso.
Cuando son distintos funciona como producto cartesiano.