after some trial and error, I found a way to have BrepAlgoAPI_Fuse to behave like good old BrepAlgo_Fuse
method, so joining all faces after fusion as normally expected.
It's enough, after fusion, to reprocess the resulting solid like this :
BRepAlgoAPI_Fuse fuser(s1, s2);
TopoDS_Shape fused = fuser.Shape();
ShapeUpgrade_UnifySameDomain unif(fused, false, true, false);
TopoDS_Shape fixed = unif.Shape();
in 'fixed' you'll find the fused soids with all faces lying on same surfaces joined as expected
and with all unneeded edges removed.
Tested with complex solids and works quite well; the new api is quite more stable than older one
and, with this fix, it behaves as expected.