Polygons versus curve primitives in software rendering
Most software rendering engines dice the parametric primitives to micropolygons, usually on the fly as needed. In essence this reduces the needed complexity to determine intersections. The surface will still look smooth, since each polygon is smaller than a pixel.

This allows for 


Data caching.
Discrete geometric derivates.
Displacement is easy to implement.
Same rendering code to be used on most primitive types.




Image 1: Micropolygon render of trimmed NURBS surfaces using Renderman from 2003. No polygon is visible as each sample gets more or less a separate polygon.

But yes it is possible to use iteration method to solve surfaces from implicit formulations. It is typically used in raymarching contexts. The entire render engine could work by doing this its essentially a tradeof between memory and computation.