Вот кстати еще нашел, что функции могут вызвать ошибку дублирования определений если их определения скомпилированы в нескольких cpp файлах и при этом функции не static, что должно ограничивать область действия такой функции в рамках одного файла, вот это больше похоже, судя по тому, что у тебя там функции на один и тот же адрес ссылаются. А скомпилено похоже с игнорированием этой ошибки или она как варнинг рассматривается чтоли