I can't help but agree with Damian. I don't see much of a point in
making a distinction between - and _.
More specifically, if a user were to define a function (say,
i-hate-camel-case()), it would not be good to let them be the same.
Readability would suffer when examining someone's code and you see
i_hate_camel_case() and you can't find that function (in my example
there are 8 different possibilities for what the actual function was
defined as!)
However, in "core" functionality, such a distinction should be made /if
it makes sense/. For example, allowing 3 _ 4 in place of 3 - 4 would not
make sense, while obscure commands (the PIR functions in rakudo, for
example), would do better to not be so stringent (or at least tell you
what you did wrong).
This is my best guess based on what I know. I don't know the whole
story, and I'm always ready to be convinced otherwise.
--
Don't Panic!