Me, @sven and @Mathias_Westerdahl have discussed this and I played around with the same scenario in a sample project. It's definitely a rounding error caused by the rotation. I did a setup where the "game" game object was on 64,64 and the childed game objects where in the range +-32,+-32. Is this the same setup as you are using?
Game objects on negative positions, for example -32,-32 ended up at world position vmath.vector3(96, 31.999996185303, -2.7975290777249e-06) after rotation (it didn't matter if they were spawned using a factory or there from the start).
Mathias pointed out that you're using 3.141592653 instead of math.pi, but it didn't help. It still got fractional values.
We did also discuss that it felt kinda strange to first rotate around the x-axis and the around the z-axis when a single rotation around the y-axis would suffice. And sure enough, with
the results had no rounding errors. Would you mind trying the same and see if that helps?