IsPolyCurve() and IsPolyline() use rhutil.coercecurve(object_id, raise_if_missing=True) but IsCurve(object_id, raise_if_missing=False). This seems odd to me or is there a reason? In my opinion none of them should raise.
I changed it in a fork. Let me know if I should make a PR. Thanks!
You have a point if this was recently written code, or your own application. I’m not the maintainer of rhinoscriptsyntax and I can’t speak for McNeel. But my two pence is: in a commercial code base, for a product that was long since shipped, one that many different plug-ins and many users’ code already relies on, a nicety does not merit a breaking change.