> Why?  Speed?  I imagine that, in both cases, a string could have been 
> used as well.  A string, though, would let you craft an invalid method

> name.

That's evil, but apparently legal:

irb(main):005:0> $sm = "invalid name".to_sym
=> :"invalid name"
irb(main):011:0> class Foo; end
=> nil
irb(main):013:0> Foo.send :define_method, $sm, proc{"a ha!"}
=> #<Proc:0x02ec3668@(irb):13>
irb(main):016:0> Foo.instance_methods.sort - Class.methods
=> ["invalid name"]
irb(main):017:0> Foo.new."invalid name"
SyntaxError: compile error
(irb):17: syntax error
Foo.new."invalid name"
         ^
        from (irb):17
        from :0
irb(main):018:0> Foo.new.send "invalid name"
=> "a ha!"