Virtual functions should provide the means to solve most problems in a class zoo, if we really do need it then we can turn it on, but I'd prefer to keep it off (and you may want to check that gcc is being told to disable it btw).
It adds overhead (not much admittedly, but we don't need it), and using it is horribly inefficient, from what I can gather, both cl and gcc provide RTTI via strcmp() using the fully qualified class name, with possibly extra name managling... Comparing upwards of 40 bytes to compare types is not cool.
But if it convenient for something, I don't mind that much... but if we do turn it on then we should go through everything and get rid of any unneeded virtual functions.