non ci sono misteri. Il manuale recita:

The conditional_expr used with ON is any conditional expression of the form that can be used in a WHERE clause. Generally, you should use the ON clause for conditions that specify how to join tables, and the WHERE clause to restrict which rows you want in the result set.
http://dev.mysql.com/doc/refman/5.0/en/join.html

Per essere confrontato un file va comunque letto ed e' tutto sommato l'operazione piu' onerosa. Quindi applicare restrizioni record per record oppure sulla tabella temporanea creata dalle condizioni dichiarate nella JOIN non cambia praticamente nulla. Il suggerimento del manuale lo trovo corretto e lo applico perche' permette sicuramente una maggior pulizia e chiarezza in lettura (per l'umano) della query. Da una parte le uguaglianze dall'altra le ulteriori restrizioni.