I’m curious, is there a specific reason to use the Rhino.Geometry method rather than rhinoscriptsynax? Rhinoscriptsyntax often tidies up some of these odd corner cases for you, and it looks like this may be one of those situations. I haven’t tested it, but I notice that under the documentation for rs.IntersectBreps() it says:
Intersects a brep object with another brep object. Note, unlike the
SurfaceSurfaceIntersection function this function works on trimmed surfaces.
rs.IntersectBreps() is just calling BrepBrep() for you. It gives the results I want, but is much slower than SurfaceSurface()
I guess the documentation for rs.IntersectBreps() is answering my question. Although expecting that SurfaceSurface() works for everything that’s selected by SelSrf wasn’t too wrong…