Hi Pieter,
Unfortunately, that's a current limitation of such work-flow (when the XSplineCoords.z variable is used in the Expression), because to conform the RC object to such Surface, these values are changed internally.
Anyway, it doesn't suit your needs very well, because as mentioned previously: "the scale is not progressive".
Best regards,