Not in the specific case where you're only looking to pull rows that did not find a match: by definition that won't duplicate any data, since no rows will match. Only multiple matching rows could potentially duplicate date.
Yes, of course, but sometimes the code gets rewritten using the other way around and you forget the duplicate problem, also, as he wrote, already existing NULLs in the tables might make the selection check harder. A lot of code writing is about maintenance and the less stuff to worry about is usually the better 🙂