Bug? Brep Intersection in Grasshopper and RhinoCommon not the same

I might have had the wrong expectations, but I assumed that GH component Solid Intersection (pictured) followed the same logic as the RhinoCommon (RC) command Brep.CreateBooleanIntersection, but the latter doesn’t recognize if one Brep is entirely inside (“contains”) another Brep.

Fig 1. The component: “Solid Intersection”:
invalid_intersection_test_00

Fig 2. What’s the same: If any Brep’s surface or edge intersects any surface of the other Brep, then an intersection is detected (here some lower edges of a smaller BoundingBox is outside a larger BBox, and thus that part is cut off by the RC.CreateBooleanIntersection(). This is OK and expected:

Fig 3. What differs: However, when the inner BBox (green edges) is entirely inside the outer BBox (red edges), the intersection is not detected by RC.CreateBooleanIntersection() whereas the gh component “Solid Intersection” does detect it as an intersection:

My workaround: In C# code, when no intersection is found with the RC.CreateBooleanIntersection() command, I make an extra test for “Box.Contains(TheOtherBox)”.

What to say? Is this difference intended or is the gh “Solid Intersection” component meant to be an entirely different idea?

// Rolf

Thought I’d just pile on here rather than opening a new post
I’m experiencing very similar problems with SolidDifference
Here’s my file.
soliddiff_inconsistency.gh (2.3 MB) My “cookie cutters” didn’t work on rhinocommon Brep.CreateBooleanDifference but kinda worked with GH component