My knowledge of FreeCad internals is only about 2 days old but the best I can tell is that latest versions of FreeCad have a behavior change here in Draft ShapeString:
CharList = Part.makeWireString(obj.String, obj.FontFile, obj.Size, obj.Tracking)
The single space String comes back with an empty list. I realize that is not in your codebase but I wanted to make you aware.