why? How can I understand the &uv map result from xyzdist()?
Probably one way is to not think of the 4th argument set by xyzdist as uvw....you could easily think of it as lmn.
But regardless of the way and for a polygon face, just consider uv.
And with xyzdist no matter what polygon is found it will always map out full values from 0 to 1 for both u and v.
However, since polygons can always come in a variety of shapes, each one(polygon) has to be calculated(mapped) differently in order to always be able to have(establish) 0-1 values for each u and v.
It's not like any polygon is put in a box of a 0-1, 0-1, 0-1 domain and clamps values that lie outside the polygon.
That's not what xyzdist is doing.
You can see the results of xyzdist by looking at the geometry spreadsheet with the 'UV' labelled node in this hip.
Adjust the number of sides of the subnet parameter to get different shapes, and also adjust the parameters of a selected point to move it around to different positions for the shape.
Then you should see how '&uv' always keeps values between 0 and 1. And how they change differently for each differently shaped polygon.
The only time you will find a one to one correspondence(other than being scaled differently/rotated differently) between '&uv' output and a grid layout like you have in your example - is if the polygons themselves are square too.
But even then...the way you have your setup and your expectation doesn't pan out because the polygons with their '&uv' values are like a subdomain within a larger domain(your 1 x 1 grid). xyzdist is only returning the domain of the polygon itself, there is no reference/relationship to anything outside of the polygon - only your starting position of 'origin'.
The 'uv' you used to move your points of your geo is not the same '&uv' set by xyzdist.
The ones(uv) you used, like Tamte pointed out, are texture uvs - They were not derived/created from the polygons. They were layed out over the polygons.