Understanding Dynamo Code block iterations with list input

Hi All

I can only assume im missing some fundamental aspect of how Dynamo works here…

I have a code block (yellow highlighted code block in screenshot) which takes in an array of 5 station/chainage values, and produces 4 points around each of these locations. This works as expected as you can see in the red circles on the screenshot.

However, I also have a line in the code which creates a closed polycurve from these 4 points.
But rather than closing these 4 points into a polycurve and getting 5 separate polycurves, it seems to iterate to the next station/chainage from the input and ends up creating a single polycurve from all the 5 x 4 sets of points that have been created, as you can also see from the screenshot.

Can anyone explain why it does this?