Common Lisp allows a compiler to *assume* / is defined to the standard
/ operation, unless there is a visible re-definition.
Kawa makes more-or-less the same assumpions.
I think that is a reasonable default mode for a compiler.

Unless the compiler has the ability to see into the future, this
assumption can be rather dangerous in an interactive system.

Can you tell me where in the HyperSpec this behaviour is sanctioned? I
had a quick look before posting my last message, but couldn't find it.

If I recall correctly, one of the advances of Dylan over Common Lisp was
that that Dylan modules export names and *values* not whereas Common
Lisp packages export names. This helps the compiler reason about the
value of imported procedures. Bigloo is able to do this too, I think.