Встроенная функция размещена в секции COMDAT. Это сигнал компоновщику, что он может выбрать любое из нескольких определений, с которыми он сталкивается. При обратном порядке ссылок вы получите другое выходное сообщение.
Другой способ поместить определения в раздел COMDAT (допускается компилятором):
__declspec(selectany) int globalVariableInHeader = 42;
Что удобно, чтобы избежать "внешней" песни и танца. Понятно, что этот механизм был разработан для того, чтобы компоновщик мог разрешать множественные определения, введенные одним заголовочным файлом, включенным # множеством исходных файлов Fwiw, MSVC ведет себя точно так же.