I found a severe error in BRepFill_CompatibleWires::SameNumberByPolarMethod. The algorithm uses two variables scal1 and scal2 in order to determine the correct orientation of an edge. Both variables take the value of some dot product, which means they can be negative, but this case is not considered.
IF only one of these values is negative, this can lead to an incorrect orientation, which in turn produces erroneous results for BRepOffsetAPI_ThruSections.
But if both values are negative, the variable Esol is a null shape, which leads to an exception on the subsequent call of BRepLib_MakeWire::Add with this null edge.
Since the method in question has more than 300 lines of only sparesly documented code, it is not clear how to fix these problems. It should be clear, however, that the negative case has somehow to be taken into account.