I have two objects with two separate meshes. You can snap vertices of one, to the respective corners of the other, set the origin of both objects to the center of mass (surface), and their positions will be different. Moving the blue one up along Z axis a little, will show the two faces intersecting (in material preview mode):
Triangulating the top (blue) face fixes the issue, which leads me to believe that internal Blender's triangulation divides the quad across the other two corners for some reason:
As a confirmation, manually dividing the quads in inconsistent way leads to the same result as on pic. 1:
However, after consistent triangulation, when the quads double triangles no longer intersect, Set Origin still gives inconsistent results.