undecided → low
new → closed
Whilst there are situations where instanceof may indeed appear to perform better, it isn't anywhere near as reliable as say a Object.prototype.toString.call(o) check when it comes to type checking.
If scripting in multi-frame DOM environments, objects created within one iframe don't necessarily share the prototype with those created within another iframe. Because their constructors are different objects, instanceof will fail in those instances and so has limited reliability.
Also see here http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/ where John Resig (in the comments) points out that for this very reason jQuery stopped using instanceof all the way back in version 1.3.