Also, this whole thing is not only about RT registration, it may be used differently. The next usage that comes to mind after RT is validating proper inheritance. E.g. Some root class wants it's subclasses to always have a default ctor available, which again can be verified in CT.