Conventionally, -- on its own tells a command to stop parsing further options and treat all future arguments as positional inputs. Used to act on pesky files starting with -, and possibly other things.
I wasn't entirely sure it should apply to all tools, but it seems like a reasonable default position to take. And the -- would have been a hard error (unknown option) for all existing backends anyway so I don't think it can break anyone.
I don't think a test in tools/llvm-nm is the right place for this sort of behaviour, as it isn't code that is specific to llvm-nm. Can it be tested using the gtest unit test system? If not, then the test still would belong in llvm/test/Option or something like that.