Problem with ShapeAnalysis.OuterWire applied on a surface derived with BOPAlgo_Splitter


I have a problem applying TopoDS_Wire ShapeAnalysis::OuterWire(const TopoDS_Face & face) on a surface derived with BOPAlgo_Splitter().
The problem is that half of the edges of the resulting outer wire are from the original face (before applying the splitter), and half of the edges are from the split face (as it should be).
Here is the pseudocode of what I am doing:

// original surface 
TopoDS_Shape surfaceToSeparated;

// edge to define separation border
TopoDS_Edge edge;

// initialize splitter
BOPAlgo_Splitter splitter;

// add the surface to be separated

// add the edge to define separation border

// perform split

// get first separation shape 
TopExp_Explorer facesExplorer;
while (facesExplorer.More()) {TopoDS_Shape splitFace = facesExplorer.Current();}

// get outer wire of separated face
TopoDS_Wire wire = ShapeAnalysis.OuterWire(splitFace.Face());

See attached some screenshots to illustrate the problem.
Do I use the wrong functions / apply the functions incorrectly or is this a bug?

I am grateful for any advice