@Marco
TP does a deep comparison, so a full run over both objects. as opposed to a shallow comparison, where just the pointers and size need to be equal.
Note that deep comparisons are rather slow, especially in a loop. Delphi does still a deep comparison on objects. FPC doesn't.
So it is a - afaik not documented! - compatibility issue. Either that, or if this was not intentional it is a bug.