In fact, this is the most important feature a good 3D engine must have. Or a cbuffer. Or don' t bother and market your game for PIII's. Culling nodes via cbuffer Works - most of the time, try it. Triple buffering Allows you to have flips aligned to the verical blank without the frame rate being locked to a harmonic of the monitor refresh.
Most compilers are terrible at high level optimising and are just as bad at low level optimising.
Benifits of a 32bit zbuffer I use 24 bits for Z information and the top 8 bits to make sure I only have to wipe the zbuffer once every 256 frames. This leads to the possibilty of dynamic zbuffer usage. I know that this makes the solution less 'correct' but the small change is not really noticable i.e. its still a huge amount better than a plain Z buffer. I've been working on getting simple bump mapped textures working in my engine - they are not properly bump mapped. You can define regions of a textures palette that will act when a polygon is lit as if the normal of the polygon is perturbed in different directions.