The way the Rockpile TML works is as follows
1) It behind the scenes does a Difference surface, creates the 0 contour on the difference surface and it drapes that over the surface of the First Surface selected to elevate it - that is the only way that yo can accurately compute it, however the number of faces that are created in the difference surface is dictated by which Project Settings you have selected under Computations, Surfaces, Volume Computation e.g. Track all Triangles etc.
The Zero Contour of the Difference Surface accurately maps the actual 0 contour of the delta between the two surfaces based on the triangles that are in the source models, and yes it may be more jagged than you want but it is the right contour
We then Drape the Contour over the Existing (Source) or Design (Target) surface to compute its true elevation - which again will be only as good as the two source surfaces. We optionally allow you to add the intersection lines to the Source and or Target Surfaces if required.
Once the Surface Intersection line has been created you can use Project Cleanup to reduce he number of vertices in it, or you can edit it to "clean it up:" however understand that by doing so you will now make it so that it is not the best match to the two surfaces that you started with - it depends on what you are going to do with the Surface Intersection Lines once they are created I guess.
You can do this as a manual process that involves the following steps or you can run the Rockpile Solutions Command that automates the process. The Rockpile command is in the Takeoff Toolbox priced at $300 and includes other commands like Cut Sheet Report and Surface Area by Slope Range
1) Compute the Surface to Surface Volume between the two surfaces to create an Isopach Surface (Difference Model)
2) Use Contour at Elevation to create the 0 Elevation Contours on the Isopach Surface
3) Explode the Contour to make it a Polyline / Linestring
4) Use Change Elevation Command to change the elevation of the contour to the elevations of either of the two surfaces that you started with
5) Set the line to have Sharp and Texture Boundary Property if needed
6) Add the lines to either or both surfaces as needed for ongoing processing
Alan