There is a confusion between isomorphism and monomorphism when it is related to JavaScript as it runs in the web browser runtime compared to the node runtime.
I feel this tension is at the root of the CommonJS vs AMD discussions that have been taking place recently as well as issues related to npm, bower, and browserify.
Monomorphic code, while being very easily shared amongst different runtimes, still needs to aware of the mechanisms, strengths, and weaknesses of those runtimes!
Projects like browserify-cdn and sites built with on top of it like requirebin.org do a lot to bridge the gap but raise some interesting questions about wrappers like UMD.
I feel there is room for a better protocol for sharing code between the different environments.
I'm currently doing some research on the subject and plan on writing a spec and implementing some example interfaces.
BTW, projects like Bower head in the opposite direction and seem painfully unaware of their actual context...
I mean, installing a package manager to then install a package manager should raise some eyebrows, right?