Dependency on PyShp switched to a new bespoke fork of it: IronPyShp
IronPyshp uses an OrderedDict to preserve the order of fields in shapefiles.
IronPyShp also correctly reads and writes Unicode strings to shapefiles in utf8 (however the shape file format
only supports 255 byte strings).
Zero length polylines could always be written by WriteShp. The issue was creating a valid zero length polyline in the first place in Rhino.
The degree 1 nurbs curves turned out to be perfect for this, as they are not required to adhere to the same validity standards as polylines.
WriteShp now reads Nurbs Curves and writes zero length ones to shapefiles, but ReadShp also adds them as a fallback if writing a polyline fails. If adding a degree 1 nurbs curve fails, only then is the error handling via the validity conditions.