If I have a pure interface class in a header file, and two function in different dll use type_id to get a const type_info& reference in one process. The two of them is the same one or different. How about on different platform and compiler, how about mscv with dll and g++ with so?
Assume they're different. Certainly the names are going to be different. Implementations can define any old junk in any way they choose. Don't use type_id as unique identifiers for classes beyond the bounds of the program runtime environment.