OK, vielleicht hat Delphi, für TPair, sich schon irgendwo schon einen Standard-Cimparer definiert?

Nein ich hab doch nicht recht ... allerdings habe ich auch immer mit Integer/Int64 gearbeitet TPair<Int64,Int64> und das funktioniert.
Mit TPair<string,...> funktioniert es nicht ... aus den von dir genannten Gründen
Also nehme ich alles zurück und behaupte das Gegenteil
Kaum macht man's richtig - schon funktioniert's

Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)