WIP - still working out the details
The :npm-module build target currently means that you have to sacrifice the Closure Compiler :advanced compilation.
The :browser target already supports code-splitting but needs a lot of extra work to make use of NPM packages. The default solution CLJSJS provides a good integration story but doesn't scale well with the the number of NPM packages you want to use. The odds of importing code multiple times increase substantially with each package and that leads to excessive JS sizes.
The odds are pretty high that most CLJS builds that use a decent amount of JS code actually get bigger by using :advanced+:foreign-libs than they would otherwise be by using :npm-module + webpack -p.