atan2 recognizes imaginary arguments
correct and expand atan2 rewriting as arg
arg watches for AppliedUndef

If this is not done then, because f(0).is_number is True then
arg(f(0) + I*f(1)) returns expanded with re(f(0))-like expressions.
arg throws away superfluous factors