Why this two brep's SolidOrientation and Shape are the same, but after CreateBooleanDifference get different resault?

Just like the title. I thought BooleanDifference is related to the SolidOrientation right ?
brep_A and brep_B has same SolidOrientation and same Shape.
But behavior differently:

Here is the code and file:

import Rhino.Geometry as rg
import rhinoscriptsyntax as rs

brep_A = rs.coercebrep(brep_A)
brep_B = rs.coercebrep(brep_B)

box_Position_1 = rs.coercebrep(box)
box_Position_2 = box_Position_1.Duplicate()
box_Position_2.Translate(rg.Vector3d(0,-10,0))

print "x:", brep_A.SolidOrientation
print "y:", brep_B.SolidOrientation

a = rg.Brep.CreateBooleanDifference(box_Position_1, brep_A, 0.01)
b = rg.Brep.CreateBooleanDifference(box_Position_2, brep_B, 0.01)

SolidOrientationQuestion.gh (24.8 KB)

PS: It’s in Rhino6’s grasshopper.