3693: don't let function evaluate bad args; sign evaluates all args

sign and Abs are using eval to process args, so a Mul must be
handled first or else individual arguments that might simplify will
not be simplified (as the test shows now).
refuse the temptation to guess with Float and prec-1

The added inline note explains the rationale for this change.