The last test also used virtual functions, but it seemed like they were getting optimized out so I modified the test to prevent that from happening.
Usually the intent of omitting the -rtti option is to remove all of the RTTI data structures, therefore preventing dynamic_cast from succeeding, as dynamic_cast is synonymous with RTTI. I would posit that the current behavior is not meeting the spirit of the feature, as I understand it.
What does -rtti actually do then, if it doesn't dis-include RTTI?