[...]
OK, here's a start, but I'd like Carl or someone more
knowledgeable to confirm or amend this suggestion. It
would be quite a messy change, as mods to lots of
engravers would be required.
Define a new context property, say tabFullNotation,
which is a Boolean set to #t if full tab notation is
required and #f if not. This would be set #f in the
TabVoice context definition and set #t by the
\tabFullNotation predefined command.
Define a new context property, say hideNotes, which is
a Boolean set to #f normally and to #t if notes are to
be hidden.
These two properties would be read by all the engravers
creating note heads, stems, dots etc and used to determine
what value the 'transparent property should have.
For example, if hideNotes was #f the dots engraver
would set the 'transparent property depending on the
value of tabFullNotation.
That said, I can see lots of other complications which
would need to be carefully thought through. This should
not be undertaken lightly!