In a tiddlers tagged as #:/tags/Macro there is a public macro. It requires other macros to achieve its goals, but these macros have no business being used elsewhere.
If I declare these macros in the same tiddler, they are exported. Bad :-( To mitigate that, I have their name beginning with an underscore, meaning to me not to use them elsewhere.
But if two differentss macros tiddler both define their own _subMacro, what _subMacro would be called? the one in the same tiddler or maybe yes, maybe not, we can't say. This is the real problem.
same question if my macro tiddler has _myStuff macro and a non macro tiddler define a macro also called _myStuff and use it: which one would be called? That's a variation from the previous question.
I know I can have _mySuff macro into a separate non macro tiddler, and \import it within my macro tiddler. That way my macro tiddler is 100% functionaal and _myStuff is not exported but creating another tiddler is a problem in itself: it's yet another tiddler, it's not that a good idea because it's only there for a single tiddler, and I would need to have a name for it. It would complexify my naming convention which is already a lengthy paper... and I would have to decide which idea is the one I shall get. to be honest, my macro fubar for the foo matter is in $:/user/foo/macros/fubar. So where should _sub4fubar be ? $:/user/foo/macros/fubar/private would do but then $:/user/foo/macros/fubar would both be a file and a directory, whis is a no go. So no way to store anything below the macro name. $:/user/foo/privateMacros/fubar perhaps? or $:/user/foo/private/macros/fubar ? I could have some macro for a bar filter in $:/user/foo/private/filters/fubar but then I don't have the same meaning for macros there than in the $:/user/foo/macros/fubar where "macros" tells that here are macros but in $:/user/foo/private/macros/fubar "macros" tells that this concerns a macro tiddler named fubar but could be whatever, not especially macros (altgough very likely macros). And when the macro has no sub macros, the naming convention shouuld be the same: do not complexify 100% for the 10%. This rules out a scheme like $:/user/foo/macros/fubar/fubar and $:/user/foo/macros/fubar/_sub4fubar which would otherwise answer the question (but being a very ugly beast).
A suggestion: could we say that any macro whose name starts by _ or even __ for compatibility's sake, is not exported even within a macro tiddler?