I think this one is important as it goes beyond just inconsistencies and can cause issues with unrelated code. It is mentioned in the php style guide as well.

Maybe: 'Define variables with var before or when assigning a value.' would make more sense?

RE: sniffing
I would go out on a limb and say it would not be hard to sniff.
This is generally tested in linters, like jslint and jshint, and returns globals as undefined (as a precaution since this isn't the case IRL – value would still be returned ofc).