I was working hard this week, so there was no time to post.
Now you are at the point where I can't see obvious problems in your code. Yes, it isn't perfect and may cause problems in the future, and, moreover, I would wrote (and I actually wrote) the whole scene graph + renderer differently. You are encouraged to dig into my code (there were links) if you want to know what I prefer I see no point in copying the same renderer in all projects around the world, and it is good that you try to architect your one by yourself.
And, definitely, implement spatial culling!
Hope to hear from you when you begin to implement new features. This always makes to rethink and improve rendering codebase.