Ответ 1
Короткий ответ Да, GAC имеет приоритет над локальными файлами.
это другое поведение от того, к чему мы привыкли в родном мире dll (за исключением некоторых системных dll, которые всегда загружаются из SYSTEM32 независимо от того, что).
Почему?
Представьте себе, что у вас есть несколько приложений с одной и той же сборкой, теперь на сборке есть ошибка, как вы исправляете все свои приложения?
Трудно начать поиск всех приложений на всех драйверах, а проще всего развернуть одну сборку на ПК GAC и сразу исправить все приложение.
Что касается вашей проблемы, если вы меняете API, вам нужно изменить версию сборки этой сборки, таким образом, механизм слияния подберет версию, находящуюся в локальной папке.