Good point. That's most probably e legacy issue way back in time and I do not think we can change that from this point on easily. You are indeed correct that you can have different versions of the same assembly with the same name in GAC, and different versions cannot be cross referenced from /bin anyway even if they have different file names because of duplication (ambiguous match compile time error).
In any case, I think I can recommend the easiest wat to upgrade from version to version. That would probably be to define the references to controls you use only in web.config and not in the individual ASPX / ASCX / Master Page files and when you upgrade, update only web.config.
Example:
<controls>
<!-- Released Control Namespaces -->
<add tagPrefix="ig" namespace="Infragistics.Web.UI" assembly="Infragistics35.Web.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<add tagPrefix="ig" namespace="Infragistics.Web.UI.LayoutControls" assembly="Infragistics35.Web.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<add tagPrefix="ig" namespace="Infragistics.Web.UI.ListControls" assembly="Infragistics35.Web.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<add tagPrefix="ig" namespace="Infragistics.Web.UI.DataSourceControls" assembly="Infragistics35.Web.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<add tagPrefix="ig" namespace="Infragistics.Web.UI.EditorControls" assembly="Infragistics35.Web.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<!-- Preview Control Namespaces -->
<add tagPrefix="ig" namespace="Infragistics.Web.UI.GridControls" assembly="Infragistics35.Web.Preview.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<add tagPrefix="ig" namespace="Infragistics.Web.UI.NavigationControls" assembly="Infragistics35.Web.Preview.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<add tagPrefix="ig" namespace="Infragistics.Web.UI.DataSourceControls" assembly="Infragistics35.Web.Preview.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<add tagPrefix="ig" namespace="Infragistics.Web.UI.LayoutControls" assembly="Infragistics35.Web.Preview.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<!-- Pre-Aikido WebUI Controls -->
<add tagPrefix="igtbl" namespace="Infragistics.WebUI.UltraWebGrid" assembly="Infragistics35.WebUI.UltraWebGrid.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<add tagPrefix="ignav" namespace="Infragistics.WebUI.UltraWebNavigator" assembly="Infragistics35.WebUI.UltraWebNavigator.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<add tagPrefix="igtab" namespace="Infragistics.WebUI.UltraWebTab" assembly="Infragistics35.WebUI.UltraWebTab.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<add tagPrefix="igmisc" namespace="Infragistics.WebUI.Misc" assembly="Infragistics35.WebUI.Misc.v8.3, Version=8.3.20083.1, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" />
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</controls>