Choice unstable-string-to-number

The string->number procedure is supposed to parse numbers out of strings and return them, or return #f if the string is not a syntactically valid number. That leaves to interpretation the corner case where the argument string contains a syntactically legitimate expression for a number that nonetheless is not a number, namely the likes of 1/0. Should string->number return #f or fall through to the number construction (which will presumably signal a division by zero)?

This choice is tested for by running

(let ((num (string->number "1/0"))) (or (eq? num #f) (number? num)))

in each Scheme.