- a terse and frozen API (like "domready" and "xtend") does not end up with the scope creep and bitrot that monolithic frameworks and "standard libraries" tend to carry
- it encourages diversity rather than "this is the one true way"
- it generally leads to less fragmentation overall (and tighter and more robust apps)
- each piece can be versioned, tested and bug-tracked independently
- once you get used to it and start finding modules you like, it can be incredibly easy to prototype and rapidly iterate with existing solutions. My 100+ modules are in a similar domain (graphics) and my efficiency for prototyping has improved because of them.
- it is better for reusability. If you have an algorithm that depends on jQuery or another monolithic framework for just a single function, it is hard to reuse. (ie version issues, bundle size)
It took me a while to come around, but npm has really given me a better appreciation for small modules. :)