Well that is what most of the early 3D cards started out as. A lot of the early SGI boxes that has '3D' were not full 3D rendering engines but span based rendering engines. Not only was setup done in software, but so was the walking of the triangle sides and the only thing passed to the hardware was commands to render spans (flat, smooth or textured). You could build any kind of complex renderer on top of this and in those days it was SGI GL (pre OpenGL) that was the rendering API. The systems were also reasonably fast for the day too.
I think the original 3DLabs GLINT SX chipset also did span rendering and support textured spans. The biggest problem is that the overhead required by the CPU to process anything close to the volume of triangles per second that high end cards can handle today is overwhelming. Even a 4Ghz P4 probably couldn't keep up trying to match the transform, lighting and span traversal to match even a basic Radeon 9000 card IMHO. And then you've got no CPU cycles left for anything else such as sound and game physics ;-)