Subject: And here's direct proof that the doc is wrong:

From: David Kastrup <[email-masked]>
Date: Sat, 09 Aug 2014 12:20:28 +0200

scheme@(guile-user)> (define wooziness (make-object-property))
scheme@(guile-user)> (set! (wooziness 5) #t)
$1 = #t
scheme@(guile-user)> (wooziness 5)
$2 = #t
scheme@(guile-user)> (set! (wooziness 1000000000000000000) #t)
$3 = #t
scheme@(guile-user)> (wooziness 1000000000000000000)
$4 = #f
scheme@(guile-user)> 

The property persists for 5 and evaporates for 1000000000000000000.
There is no reliable way to know whether it will persist for numbers.

And since Guile refuses to commit to guaranteeing (lambda (x) (eq? x x))
to return #t when x may be a number and since there is no guarantee just
which numbers may be represented by immediate values, there is no
context in which an object property on a number may safely be retrieved.

-- 
David Kastrup