In reply to Michael54:
I have one piece of feedback on your first question.
There is overhead in registering a class with the factory, even if you never use the factory to create it. A large register model could bog down your simulation (compilation, startup and debugging).