Не полагайтесь на свои зависимости от того, что ваш код является JITted, а этот только вызываемый код является JITted.
Лучше всего всегда предполагать, что все ссылки будут загружены и должны быть доступны.
Ваш пользователь может использовать AOT, аналог Mono для NGEN.
Или тонкие различия в том, как более новые версии времени выполнения обрабатывают такие вещи, как сериализация, удаленное взаимодействие, безопасность, отражение и т. Д., Могут привести к загрузке ссылок, даже если ваш код ничего не использует напрямую. (Но сериализатор мог вытянуть все типы, которые затем загружали другие сборки)
Используйте интерфейсы или классическое наследование, или, возможно, события или другие средства косвенного обращения, чтобы загружать части .Net только тогда, когда они уместны. И под шляпой я подразумеваю сборку, на которую вы не ссылаетесь, а загружаете динамически.