(About opaque geometry)
Depending on your scene, sorting opaque geometry in order to avoid pixel overwrites not always results in a gain in performances. Even worse, sorting and then drawing can be slower that directly drawing, without sorting. And if you use a deferred rendering technique, lights, shadows, ... calculations would not be concerned by this, only the g-buffer generation would.
(I tried exactly what you describe, and realized afterwards that not sorting opaque geometry and let the z-buffer doing its job was a better choice in my case !)