Just because you can't create an OnCurve doesn't mean it can't exist. What a method is basically saying when it wants an OnCurve is that it can accept any class that derives from OnCurve, and therefore supports common methods for accessing it.
You can pass an OnPlane. OnSphere's are pretty worthless to actually use, since you'd have to convert them to a OnSurface or OnBrep to really do anything with them. If you're really interested in having a sphere in your scripting component, you can pass in the center point and radius, since that's all the real information you'd be able to get out of an OnSphere anyway.