Generally speaking, EXCEPT, INTERSECT and UNION compare all the fields in the input queries, so it's not always what you want to do.
Anyway, it's just the actual execution plan that counts, not the syntax of the statement.
Different syntaxes can produce the exact same execution plan.
This is a good explanation on the difference between not exists and not in:
http://sqlinthewild.co.za/index.php/2010/02/18/not-exists-vs-not-in/
Hope this helps
Gianluca