Correcting what I posted earlier.

Looking at just the “trimming” surfaces and using Zebra and CurvatureGraph shows the surfaces to have G2 continuity between them.

However duplicating the edges and extracting isocurves, and then using GCon and CurvatureGraph shows the edges and isocurves of the two curved surfaces to have G1 continuity between them.

Extending the trimming surfaces and IntersectTwoSets with the other surface results in two curves as expected. One curve has multiknots. The two curves which are close to but not quite exactly G2.

Projecting or pulling the edges with G1 continuity between them onto the other surface will result in G1 continuity between the projected/pulled curves unless there is a particular alignment of the curves with the surface.

The continuity you are seeing may have several causes: the edges are not actually G2 continuous, and/or the projected/pulled curve and trimmed edge can not be exactlyr represented by a NURBS curve so Rhino creates an approximate curve within the tolerances. With multiple curves or surfaces each curve or edge is approximated individually and the approximations together may not have quite the continuity which the theoretical solution would have.