> Is there a reason line 336 calls to_sym but we don't here.

Because line 336 is the entry point into this recursive method.  Within this method, `message` is already a symbol (since line 336 passed it as `message.to_sym`) so there's no need to call `to_sym` again.