Итак, литература указывает, что если разные программы подключают dll, то глобальные переменные библиотеки уникальны для каждой программы. Верно ли это утверждение для разных потоков одной программы?
Нет вроде как. Каждая DLL подгружается к процессу только 1 раз. Т.к. все потоки находятся в пределах одного процесса то и получают одни и тежи данные из DLL если они глобальные.
более того, LoadLibrary на подгруженную библиотеку вернёт указатель на уже подгруженную, не загружая ничего снова. а если очень надо делать так, то читай про TLS