Civil 3D will never stop amazing me with all the inconsistency.
The AddFixedSpiral method takes in Point3d for all the Points like Startpoint, SpiralPI and so on, but the AlignmentCurve StartPoint is just Point2d. Which means that after I pass in point3d to create a Spiral Curve, the Start Point I can retrieve from AlignmentSpiral is just a Point2d ( as AlignmentSpiral inherits from AlignmentCurve).
Downgrade??