In this case I think the third question is pretty clearly "it helps a
lot". Getting answers on the first two takes a bit of end-to-end measurements in full use cases. If you happen to have some ideas on how to check this for the change, that would be helpful. If not, then it is something that we should look into overall anyway.
One interesting point is that developer intuition is wrong 80% of the time
when it comes to performance and optimization. So we need to get some actual measurements set up on the code.
Well, currently I'd expect the time for creating new objects to have increased a bit as for every step down the inheritance hierarchy, one more new and delete have to be executed. Calling virtual functions on these objects shouldn't take longer, although I don't know what happens under the hood of these casting macros. So I think we should measure the time it takes to load a big document and construct the object tree. Actually, I have never been working on such a complex project and so profiling didn't matter to me, so I don't have no experience with that. If you have any further suggestions, please let me know...
Markus