Here's a thought: Q: if we had truly ubiquitous data deduplication, what would be the advantages of shared libraries?
A: none of the performance wins through sharing need apply. Deduplication beats them in a more flexible, more abstract, way.
(Of course, we do not have truly ubiquitous deduplication. And it usually requires things to be block or file aligned.)
This leaves the only fundamental advantage of shared librares
- the fact that you can effect a ubiquitous change by updating a shared library.