My two cents.
USING CLAUSE :
When several columns share the same name and you make a NATURAL JOIN. Then you may not want to join all such columns. In that case, you can explicitly specify just the column names that has to be used as the join key!
ON CLAUSE:
When the column names are different in the joining tables, we tend to specify exactly, the column names in respective tables, to be used as JOIN keys.
But when seeing behind the screen, the internal working is going to be the same. It is all how comfortable we are with the syntax.
Say, some day the column names are changed (Ofcourse it is a bad model), but still, you queries may fail with a USING clause.
So, to play safe, ON clause is always advisable! Depends on the individual opinion.!
Good luck!