> I think is_number should only be true or false.

No.  Sometimes the object *may be* a number and we can't decide.  My opinion there is nothing special c.f. other assumptions like is_positive or is_even.