- is valid in an identifier, and thus it cannot 100% reliably be used to normalize names. -- is not a valid identifier, and thus s/::/--/g is technically the superior naming convention.
Admittedly the former is more common in other languages than the later. But that dichotomy would appear to be because its more common to now allow - in identifiers.
I don't know if the round-tripping actually matters for you, but the - issue still remains since querying for literal Foo-Bar module should not find a Foo::Bar module.