Hi Matt,
In computer science we have a theorem called "The Big O Theorem", basically its about finding problems inside of an execution loop, it helps a developer find where time is being spent in an execution loop.
http://64.233.167.104/search?q=cache:ieC...eorem&hl=en Level geometery has the advantage of haviong a BSP tree being created, this means that you do not have to traverse the whole geometery element list, you can follow a tree that has only the geometery you need to display, thus speeding up time progressing throught the draw list.
Model entites do not have the advantage of BSP, these entities are not fixed and are considered moveable by the engine. So they have to be calcuated each frame. Possibly Octree would allow a tree structure to be applied to the draw list, not sure.
Bottom line the less that needs to be done inside of start render and draw render loop the better. Travesing the draw list, is a CPU issue, the less times throught the list the better the performance....
I hope this helps. I am not Octree savy, but I have coded my share of draw list code, 2d and 3d.
Theoretically this is how things are done, 3DGS may have many tricks to speed this process-up, that would be their secret....
Ken