1. Separation between the scene graph data, and the scene graph renderer. That's probably the main thing missing in 95% of the scene graphs out here. Exemple: NVidia recently released NVSG. I had a look at it: it's very powerful and nicely designed, but all the data is linked to the renderer. Why is it a bad thing, you ask ? Because sometimes you need a scene graph without a renderer. Ex.: when coding a server, doing collision detection, etc..
2. Separation between the scene graph hierarchy, and the spatial structure used for visibility queries. In particular, i want to have a tree to "logically" link objects together; and another tree (can be a BSP, an octree, whatever) to subdivide the world spatially, in order to speed up spatial queries.
It's pretty hot to code. Any bad design issue is a sure way to loose tens of hours later, to fix problems. I want to get it right and make it powerful from the beginning.
I will also soon start to investigate into procedural cities generation. I need a break from sky shading.