There needs to be a way to forcibly run the thread destructors for a library that is going away.
Since the library is going away, it means it's not used any more. Not being used means that no thread that is currently running will call into that library any more.
If no thread that is currently running will use the code of that library, it has no business hanging on to the data belonging to the library; that data should only be manipulable via that code. Therefore, it should be forcibly taken away.
The reason they flunk on this issue is that there isn't a nice way to enumerate through all the threads and snipe away a particular class of thread local storage from each. The architecture is oriented around the POSIX-induced brain-damaged idea that a thread must clean up all thread-specific storage after itself.
Fight me!