Is 2 bad syntax? Why might I use that?
There's nothing wrong syntactically with placing a predicate in the JOIN clause or in the WHERE clause, either way works in Oracle. Oracle doesn't actually care anyway :)
Logically, I will sometimes use the JOIN and WHERE clauses to make large, complicated queries more self-documenting. For example:
SELECT dept.name, SUM(emp.salary)
FROM dept
JOIN emp
ON dept.deptno = emp.deptno
AND emp.commission IS NULL
WHERE dept.region = :region
GROUP BY dept.name;
This query has three predicates, one of which is a join criterion. I've put the emp.commission predicate in the JOIN clause to indicate to other developers that this is a "non-negotiable" - in the context of this query that predicate should always be there. The dept.region predicate is in the WHERE clause to indicate that it is the user-supplied criteria.
This is a style choice, there is no rule, and I wouldn't do it this way all the time. It helps, however, when a query joins many tables, and when there are dozens of predicates. The JOIN clauses allow predicates to be "grouped" nicely, where otherwise we'd sort the WHERE clause so that predicates were grouped together logically.