Basically, the idea of OOP is information hiding and polymorphism, and prototype-based objects throw both of these concepts away. The result is more complicated code in general.
information hiding is the principle of segregation of design decisions in a computer program that are most likely to change, thus protecting other parts of the program from extensive modification if the design decision is changed
http://en.wikipedia.org/wiki/Information_hiding
How are prototypes inferior to classes with respect to information hiding? They provide the ability to easily change the implementation while maintaining the interface.
How do prototypes inhibit polymorphism? All of the prototype languages that I know of (Javascript, Io, Self, Lua ...) make it easy to take advantage of polymorphism.
Ruby Hashes and Enumerators have way more functionality than the stock js types.
Is it worth the 40k minimized for the full include? That I dunno.