@Dr Herbie:  True code reuse is traditionally very difficult to maintain in certain types of code, like LOB applications and e-commerce sites, where the code is often copy and pasted and customized, rather than refactored into truly reusable and composable framework and libraries.  It's often a matter of time and the ROI of spending time refactoring is something that many, many managers and stakeholders are unwilling to invest in, just as they are unwilling to invest in dealing with technical debt in general (and this is a form of technical debt).  So you end up with 100s of gigs of similar but incompatible types and functions and applications as a whole.

One of the ways to really have true reuse is to write code as pure functions.  Because they are pure, they can be trusted to always do the same thing, but even if you do that, the types the functions operate on are not necessarily reusable in LOB and customized solutions over generalized templates, because they have customer specific fields and what not.  However, as we move forward to things like dependent types I hope to see solutions to that problem as well.  Hope is a key word here. 

Good thread.  I'd like to dig into it more later if I have time.