Testing with scud, I was wondering if a 1 pass draw was possible, instead of the 2 passes we are currently doing. But it turns out it's not possible, it doesn't matter how you theoretically sort the higher level nodes it's just not possible.
Anyway moving onto ocean hunter, part of ocean hunter looks identical to what we are doing currently. I found that that this is only happening with polygon transparency.
I've marked the transparent polygons in red.
Doesn't look transparent, but the value is 31/32 so it's almost fully opaque.

The original hardware looks the same. There is no sorting going on here, because both contain the transparency error. The objects should be drawn the other way around. But this is how they come out of memory.

A different scene with a similar issue

Again the hardware is identical. So no depth sorting here

Here is a different scene. Notice no red polygons, these polys only have texture transparency. The poly alpha value is 255. Notice the white areas, these are related to the fact the polys are drawn in the wrong order.

The hardware doesn't contain these errors. This can only be possible if the hardware is sorting the scene. And I am pretty sure it's doing it at the list level, which should be fairly trivial.

I am pretty sure this would fix lemans24 too, because it has tonnes of these transparency errors.
So the too lazy didn't read, is my conclusion is. For texture transparency the hardware is sorting the scene by depth, probably at the list level which is probably quite cheap.
Polygon transparency seems to be handled completely differently, and the polys are drawn the same order they appear in memory. It also seems to stencil test them if they are translucent enough. Maybe less than 50%? Not sure.