Если различия главным образом заключаются в представлении, частичное представление и замена RenderPartial на собственное расширение RenderPartialIfSupported должны сохранять код достаточно чистым. Расположите представления в папках версий, и вам не нужно указывать нужную версию непосредственно в коде основного представления.
Если различия в версии легко связать с действиями, атрибут фильтра действий является хорошим подходом - тогда вы можете просто добавить [RequireVersion (1.1)] к каждому действию, которое поддерживается не всеми.
Вы также можете комбинировать их с пользовательской версией ActionLink, которая находит соответствующее действие и его атрибут RequireVersion и ничего не отображает, если действие не поддерживается.