I'm sorry, I have an impulsive dislike of OOP 'tricks' like the ones you described in the initial post (in a similar vein I prefer straight C to C++, though I use both). I pretty strongly believe that when you start trying to answer complicated architecture questions as above you should step back and start asking why you've reached that point in the first place.
I genuinely didn't mean to cause offense, just to point out the area that to me the assumptions looked shakier than the solution. I was overly blunt. Sorry again.
Hah, I get your point, no worries.
The factory in itself isn't all that uncommon though, and as I understand, it often implies building a list of factory entries in some place. I just wanted to see if it was possible to skip that step, which was, to my surprise, successful.
The previous solution I had was simply building the menu in-place:
menu.addEntry(new Scene1());
menu.addEntry(new Scene2());
//...
menu.addEntry(new SceneN());
Pretty much an equivalent solution, but I had a few different reasons to move to a factory in the first place. Most prominently, things like setting a starting scene in a configuration file to skip recompilation.
@BorisTheBrave:
Truth. It's not a very common setup I'm using. The program is basically a test bench for my thesis project where I do a lot of different rendering setups to test stereo and head tracking. The menu gave me an excuse to do both with portals.