Even with decomposing the sub-objects further, I have made a nice improvement in performance. The application that I am testing is now running at about 170 fps on a 2.8 GHz P4 with a goForce 5200 fx as the video card. I still have to test it out on a better video card, but if a low end card like this can still get good performance then I am not too worried about it.
I also looked into some ray tracing algorithms, and found a good set of tutorials at devmaster.net. Ray tracing is a very interesting area of study, but I don't think I will be pursuing it very far. I have spent the last 3-4 years working on my rasterization engine, and it would be a huge loss of time and effort to make a switch to ray tracing. However, my engine is flexible enough that I could create a 'renderview' that uses raytracing instead of rasterization.
Maybe I'll do it to play around a bit, but I don't really see any way of making it run in realtime with any sufficient quality right now.
So now I have to decide what is the next area of research that I will be looking into. I will likely write another article on the new topic, so if there are any requests out there I am open to suggestions!!!