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