Though I do agree that there should be more collaboration on low-level components (eg. we've done a lot of work replicating a whole bunch of crypto functions like serialization, merkle trees, erasure coding and ECDSA in 5 languages that others should feel free to leverage) and high-level components (eg. I think that eventually Mist and Maelstrom and whatever you call the Bitshares client should all support every underlying crypto-platform, and so browsers and protocols should compete separately).
If we have several blockchains that all have the same clients (and thus UX) and are all turing complete, and all have funding to copy any new feature that's invented in the space by anyone, then the only real difference between blockchains would be their liquidity (and thus market cap/volatility of the underlying base token which serves as collateral). New capital entering the system will always choose whichever system has the most liquidity.
The reason why bitcoin maximalism doesn't make sense is because it isn't turing complete and cannot be upgraded to become it.
So, there are two reasons to have multiple blockchains. One is that groups will always disagree, and even within the bounds of turing-completeness there are disagreements. For example, Dan just
expressed his interest in having the underlying DB be a graph database instead of a key/value store, as well as having markets be a first-class structure; I think that's silly, and would prefer heaps/treaps/some kind of trees as a first-class structure and nothing else, as markets can be made out of heaps pretty easily and graph DBs can be replicated by key/value stores. Now the legitimate reason to try to make those modifications is, as Dan points out, because there's a choice of what to put at the compiled level and what to put at the interpreted level.
The second reason is scalability/fees. Users looking for a blockchain have three factors to keep in mind when choosing a chain: (i) network effect factors, (ii) security, (iii) costs. Larger chains have higher security and higher network effect factors, but higher costs because more nodes have to process every transaction. Hence, applications which benefit from security and network effects strongly should be on one chain, but apps that are lower-value and independent really should be off by themselves.
Now, our recent research has led us to conclude that scalable multichain/sharding mechanisms exist that allow all blockchains to share security to a high degree (at least for full clients; light client security is a bit more complicated) with a high degree of interop, so the only tradeoff that remains is between network effect and fees. Additionally, note that many kinds of blockchain applications are vulnerable to 51% attacks in ways other than consensus (eg. schellingcoin), so in those cases having any higher degree of shared security is superfluous. I think we'll end up seeing a highly complicated multichain setup where chains follow a power law distribution in size, with dapps that need to talk to each other a lot congregating on a few chains, and things that are mostly standalone being separate, but with inter-chain linkages for communication/trade when needed.
(As another point, at ethereum we generally don't see blockchains as being financial tools exclusively; they're more like decentralized computers that people run services on, and those services probably use tokens in a lot of places but that should not necessarily be an assumption everywhere; hence, "liquidity" is only one kind of network effect, and IMO even one of the less important ones).