If you're using a traditional planar BSP then you can of course do perfect front to back sorting for free (which allow the use of coverage spans). However you still have to handle polys / particles / sprites that are not part of the BSP. That is where with Quake they threw up their hands and used a z-buffer (ie the easy way out

). My testing with PocketGL, which uses an interleaved color / depth buffer, is that the addition of the depth buffer reduces performance around 33%, even when the depth buffer is not actually used (ie the penalty of extra cache loads, plus the inability to do more efficient hardware blits because of the hybrid buffer, causes the performance drop). Even if a span based system is somewhat expensive, there still may performance to be gained relative to z-buffers.
Dan East