Investigate proper GeoJSON winding order
Right now, no normalisation takes place when marshalling GeoJSON. Should ring orientation be normalised? Needs a bit of investigation and thought about what implications this could have.
In the fully-standardized revised GeoJSON specification (aka RFC 7946), polygons should follow the right-hand rule - exterior rings are counterclockwise, interior clockwise. However, for backward-compatibility, this is not required. Polygons with differently-wound coordinates should still work fine.
Thanks for linking to that RFC. The relevant sections from that RFC are:
A linear ring MUST follow the right-hand rule with respect to the area it bounds, i.e., exterior rings are counterclockwise, and holes are clockwise. ... Note: the [GJ2008] specification did not discuss linear ring winding order. For backwards compatibility, parsers SHOULD NOT reject Polygons that do not follow the right-hand rule. ... For type "Polygon", the "coordinates" member MUST be an array of linear ring coordinate arrays. ... [GJ2008] Butler, H., Daly, M., Doyle, A., Gillies, S., Schaub, T., and C. Schmidt, "The GeoJSON Format Specification", June 2008.
So this is clear that ring orientation should be normalised before serialisation. As you point out, all (or most?) parsers in practice will accept either winding order, so this isn't critically urgent to fix.
Since detecting winding order and reversing rings is a very cheap operation (compared to doing GeoJSON serialisation), adding the normalisation step is quite reasonable. For simplicity, I think it's best to do it unconditionally.