The compiler is more likely to optimize away the function call overhead when the used type is simpler and not virtual.