BRepBuilderAPI_GTransform non-uniform XY scale produces invalid solid with negative volume (OCCT 7.8.1)

Hi,

I'm encountering an issue with `BRepBuilderAPI_GTransform` producing an invalid solid (negative volume, broken topology) when applying a non-uniform XY scale to a valid input solid. This is with **OCCT 7.8.1** via FreeCAD 1.0.2.

## Input
- Valid solid (BRepCheck_Analyzer passes), volume = 8055 mm^3
- 231 faces: 43 Cylinder, 114 BSplineSurface, 71 Plane, 1 Toroid, 1 Sphere, 1 Cone
- Hollow cylindrical tube with BSpline features attached

## Transform
Non-uniform scale: sx = sy = 0.884, sz = 1.0

Applied via FreeCAD's `transformGeometry()` which wraps `BRepBuilderAPI_GTransform`:
```python
mat = FreeCAD.Matrix()
mat.A11 = 0.884 # sx
mat.A22 = 0.884 # sy
mat.A33 = 1.0 # sz
result = solid.transformGeometry(mat)
```

## Result
- `result.isValid()` = False
- `result.Volume` = **-2373** (expected ~6295, i.e. 8055 * 0.884^2)
- Shell has 231 faces, same count as input
- `BoundBox` is asymmetric: X[-31.0, 15.5] (input was X[-11.3, 11.3])
- Reversing the shell, re-sewing faces, ShapeFix — none repair it
- STEP export/reimport changes volume to 5829 but remains invalid

## Expected Behavior
Since the input is a valid solid and `gp_GTrsf` with sx=sy (uniform in XY, different in Z) should produce valid geometry (cylinders stay cylinders under uniform XY scale, BSplines get converted), I'd expect a valid output solid.

## Observations
- The asymmetric BoundBox suggests some BSpline surfaces are being transformed incorrectly (XMin went from -11.3 to -31.0 while XMax went from 11.3 to 15.5)
- `transformShape()` with the same matrix produces a valid solid but with dimensionally inconsistent results (features scale by 0.69 to 0.93 instead of the target 0.884)

## Questions
1. Is this a known limitation of `BRepBuilderAPI_GTransform` with mixed surface types (Cylinder + BSpline + Toroid)?
2. Should non-uniform scaling with sx=sy (isotropic in 2 axes) be expected to work on complex solids?
3. Is there a recommended approach for non-uniform scaling of complex BREP solids that preserves validity?

I'm aware of the gp_GTrsf fixes in 7.8.0 — this is on 7.8.1 so those should be included.

Thanks