I can't believe it.
The documentation of Geom_OffsetCurve says:
"The Offset curve is in the direction of the normal N defined with the cross product V^T
where the vector T is given by the first derivative on the basis curve with non zero length"
(V is the reference direction).
In the code the cross product is reversed:
void Geom_OffsetCurve::D0(const Standard_Real U,
basisCurve->D1 (U, Pbasis, V1basis);
XYZ Ndir = (V1basis.XYZ()).Crossed (direction.XYZ()); // this is T^V !
So for a planar curve (with V = (0,0,1)) the offset is positive on the right and negative on the left, contrary to what the documentation says.
Can anyone confirm this?