Groff is a programming language, sort of. I wonder whether already
exist a scope-separating mechanism for number registers,
No.
just I do not know about it, or is there such a thing in the
pipeline in the future?
Yes.
If you mistype the name of a macro, it won't get executed, and in
the absence of a warning you may think that everything is ok. I
believe that one may get a warning, but I can't find it how.
groff's command line option -ww activates all warnings.
With number registers, what is the best policy to avoid conflict? By
naming conventions? Weirder and weirder?
A macro package `foo' should use its name as a prefix to create a kind
of namespace: foo_bar, foo:bar, foo-bar, foo*bar, etc., etc.
Werner