Когда сборка строго названа, все, что ссылается на нее, будет искать эту конкретную версию.
Вы правы в том, что «Конкретная версия» в Visual Studio никак не влияет на среду выполнения. Фактически, «Конкретная версия» в основном означает «Когда вы запускаете сборку, если MSBUILD не может найти версию, на которую ссылалась, произойдет сбой сборки или просто используется следующая версия, которая может быть найдена в файловой системе?»
Если вы перекомпилируете A и развернете его как частичное обновление (а не полностью развернутое приложение), то, если в приложении есть что-то, ссылающееся на старую версию, ваше приложение может сломаться, если у вас все еще нет также доступна старая версия A (т.е. вы ее не перезаписывали).
Это основная причина, по которой некоторые продукты используют GAC, потому что он может хранить несколько версий одной и той же DLL без перезаписи друг друга - если вы пытались развернуть разные версии одного и того же файла в папке bin (при условии, что они имели имя файла, которое они обычно делают), они будут перезаписывать друг друга, и в результате вы получите только одну из DLL в вашем продукте!
Еще один трюк, который вы можете сделать, это поместить ваши «обновленные» библиотеки DLL в подпапку в двоичном каталоге и отредактировать файл app.config, чтобы сообщить среде выполнения, где их искать.
http://support.microsoft.com/kb/837908
Итак, чтобы подвести итог, сборка со строгим именем использует не только простое имя для определения идентификатора сборки - изменение ее версии можно рассматривать как полное изменение ее имени.