As an aside, I tried switching out the native tuple/matrix code in favor of Eigen (http://eigen.tuxfamily.org) and it actually got dramatically SLOWER (I suspect because Eigen objects are significantly more expensive to create than my tiny classes. I haven't spent much time reducing allocations yet.
Pretty happy with how this turned out. Shadows are still hard-edged instead of soft, and I need to do some reading about anti-aliasing to get rid of the jagged edges, but not bad overall. It would also be nice if the red of the floor reflected up onto the bottom of the teapot a bit.
3200 triangles for the Utah Teapot, a single plane for the floor, and one point light source. About 2 seconds to render at 1600x1200 on my 10-core iMac Pro.
That's really lovely. The glossy texture really shines! It sounds like you're wanting to explore global illumination (en.wikipedia.org/wiki/Global_illumination), which tries to simulate the effects of light bouncing off of surfaces (like the red floor casting a red highlight onto the teapot). It's an exciting area that I've wanted to explore more as well. Let me know how it goes!