It is done on purpose.
We will never have to do more than that in order to create an instance of the correct message.

Furthermore, I'm studying a way to have the message dynamically created in order to get rid of the "if/else if/else" structure and try to exploit more the new RTTI functionalities of C++1