First, there is this http://support.microsoft.com/default.aspx/kb/905238 (http://blogs.msdn.com/astebner/archive/2007/02/08/assemblies-may-be-missing-from-the-gac-or-winsxs-cache-after-an-msi-major-upgrade.aspx,http://blogs.msdn.com/astebner/archive/2007/09/06/4798334.aspx).
This makes it hard for people shipping shared assemblies using merge modules. Then, there are all those clients of the assembly referencing the old version. Publisher policy may or may not work.
So, basically, we need to ship all versions, but with different ComponentID values.
And pray, we won’t need a patch.