Why do we need to 'protect' anything from the shell?
so it does not get misinterpreted. This is evident in many different console commands (the most know protection are quotes ("something 2 do"), so that a line of text (with numbers?) is interpreted as one option.
the easiest example is:
cdparanoia -- "-3"
what this tells cdparanoia, is that the "-3" will be a span instead of an option. if you did not use the --, the command would see the hyphen and use "-3" as an option. Since no such option exists, it hopefully will give you an error (it would be worse and misinterpreted and did something terribly worng -like remove your home dir ; )
Basically, the problem is that the shell does not have an AI - it cannot distinguish and determine what you are trying to do. if its programmed to see a hyphen as an option, it will do so with out asking questions.