R7RS-smallの仕様に準拠した実装で(infinite? z)と(nan? z)の両方とも#tを返すことがあり得ます。例えば+inf.0+nan.0iのようなcomplex numberを扱える実装ではそうなるはずです。
R6RSでは、上記の2つの手続きの引数はreal numberに限って定義されていたため、そのようなケースはありませんでした。実装はどのように拡張しても構いませんでした。しかしR7RSの場合は、(and (infinite? a) (nan? b))が#tとなるreal number aおよびbが存在する実装でcomplex numberをサポートするなら、必ず(let ((c0 (make-rectangular a b)) (c1 (make-rectangular b a))) (and (infinite? c0) (nan? c0) (infinite? c1) (nan? c1)))は#tでなければなりません。
参考: