At the top of page 46, the OMG DDS XTypes 1.3 standard says
A type's key can only include members of the following types: primitive, aggregation,
enumeration, bitmask, array, and sequence.
Among others, the primitive types include floating point types ("float", "double").
I am surprised that these types are permitted as keys of topics.
Performing the same calculation on different architectures or using different compilers or programming languages may give variations in the least significant bits of mantissa, unexpectedly yielding different topic instances.