I guess it's because Kernel isn't the receiver of the call. It's the 
top-level main object (of class Object, which mixes in Kernel)

>> self
=> main
>> self.class
=> Object
>> class <<self; self; end.class_eval { define_method(:`) { puts "yay!" } }
=> #<Proc:0xb7c79054@(irb):2>
>> %x{cat /dev/null}
yay!
=> nil
>> 
-- 
Posted via http://www.ruby-forum.com/.