@marick I'm not sure I follow, in Common Lisp you have separate name spaces.
CL being one specific package that contains the definition of +. (defun CL:+ (a b) (cl:* a b)) is possible, and will cause all kind of weird behavior.
Redefining integer::+ in Ruby would (I presume) have the exact same cause.
It has nothing to do with the functions being compiled to machine code or not, in the CL example this can be compiled to machine code and often is in e.g., SBCL.