The result of these assumptions is an architecture that has a certain elegance, but is impossibly complex, where writing good modules means having tons of domain knowledge of the framework itself which does not transfer to any other form of web development.
This approach makes a viable framework for a lot of low-budget projects (ie. clients with $5000 and a ridiculous laundry-list of general components), but compared to Rails, Django or other frameworks that focus on the basic building blocks that apply to the majority of web applications the results are horribly baroque.
Bah. There's a price to pay for shiny things, eh?
Adequate culture can compensate for lack of fundamental knowledge, but Node doesn't have "The Node Way" (yet.) DC taught us what to avoid, but we don't have a strong body of blessed examples or expressed philosophy.