Hi Pascal, I just made a script to fix flipped hatches and discovered that rs.AddHatch() makes the same flipped hatches, so I had to use rs.Command(“Hatch”) instead.
So I guess it is an error in the RhinoCommon add hatch thingo 
# --- DWG Rehatch
import rhinoscriptsyntax as rs
def Rebuild_Hatch(hatch_id):
orig_Fill = rs.HatchPattern(hatch_id)
orig_Scale = rs.HatchScale(hatch_id)
orig_Rotation = rs.HatchRotation(hatch_id)
orig_Layer = rs.ObjectLayer(hatch_id)
orig_Color = rs.ObjectColor(hatch_id)
rs.HatchPattern(hatch_id,'Solid')
obj = rs.ExplodeHatch(hatch_id, delete=True)
crvs = rs.DuplicateEdgeCurves(obj)
#newHatch = rs.AddHatch(crvs, orig_Fill, orig_Scale, orig_Rotation)
rs.SelectObjects(crvs)
rs.Command("_-Hatch _Enter _Enter",False)
newHatch = rs.LastCreatedObjects()
rs.DeleteObjects((crvs,obj))
rs.ObjectLayer(newHatch, orig_Layer)
rs.ObjectColor(newHatch, orig_Color)
# --- Add these since rs.AddHatch() does't 'work' correctly.
rs.HatchScale(newHatch, orig_Scale)
rs.HatchRotation(newHatch, orig_Rotation)
hatch_ids = rs.GetObjects("Get Hatch to rebuild", rs.filter.hatch)
if hatch_ids:
for hatch_id in hatch_ids:
rs.EnableRedraw(False)
Rebuild_Hatch(hatch_id)
rs.EnableRedraw(True)