Hm, I think '-' can cause problems with getopts sometimes.
Oops! Starting filenames with '-' is just asking for trouble. Your life will be least painful if you start names with [a-z_], use only one '.', don't make them too long, and don't rely on case differences alone. If you find yourself wanting arbitrary filenames, either never pass them to other software, or consider using a database.
I remember a colleague who used to create files named "-i" in directories he wanted to protect. That way, when you did "rm *", the file list expanded into "rm -i ..." and you got prompted for each file. I'm not recommending it, but he liked it.