Never played Thief, but I logged a lot of hours in Unreal, 1998. I was (and still am) amazed at how full-featured the software renderer was. I always wished I could peek at the code behind it.
If memory serves, the only thing my 3dfx Voodoo3 could do that software-only mode could not was surface reflections. Maybe something with colored lighting too, it's been a long time. Point is, it was a decent enough substitute for dedicated graphics hardware.
I was too young to understand but I distinctly remember the 3Dfx version looking vastly better everywhere to my eyes. Reflections were amazing though. Could have been the higher resolution, or could have been the fact that I was playing on an older CPU at home at the time. I was jealous of the people with hardware acceleration.
Did unreal have 16-bit color software rendering? Most software renderers back then that I recall only did 8-bit color and ran choppier than the 3D accelerated renderers on the hardware at the time. This made a pretty big difference especially with lighting in my experience.
But I remember Unreal being unreachable for me at that time because I couldn't even dream of getting a graphics accelerator and it won't even start with out a one, or was it the sound card requirement that was the blocker?
The guys in OldUnreal have access to the source code AFAIRemember. Epic gave them the source code so they can produce those patches. They also improved the UT99 engine I think.
The (incomplete) Thief2 and System Shock2 source code was leaked years ago from a Dreamcast development kit. I imagine a Google search would find you a download. I think I saved a copy too, someplace.