I just read this on an email from a Google’s Closure developer:
Adding runtime checks for invalid usage is something we have policy against. It adds to the code size as well as to the runtime cost.
I totally agree. Developers should be responsible for their usage of APIs or third party libraries, while these should focus on working as efficient as possible given the correct parameters. Being Javascript a non-strongly-typed language, checking the parameters passed to every function are right at runtime would be a huge overkill.

Still, a good idea would be to provide a debug version which logs errors (e.g: firebug), so developers can use it during development, to know they are not doing anything wrong.
Of course, I agree is not a good idea to use it in production/live site.
Yeah, that is the best solution. Currently in the project I am working on the JS is processed by our CMS, so it can generate different outputs, one of them being a flag to display/hide debug messages.
The MooTools just released something very interesting for MooTools 1.3: . While in use, it throws exceptions if someone in the dev team does not use a class as defined by the Interface. What is very interesting is that it can be removed prior to deploying to production, so it would not have a performance impact.