Macro sets, variable sets and tags. Can you explain exactly how this all fits together as I am still a little confused?

Macros can have tags.
Variables can have tags.

The "use" command takes 1 tag as a parameter:
jamba-macro use <macro set> <variable set> <tag>

So how do the macros, variables and tags work together to create the final macros?
For instance, if I do: jamba-macro use Shaman Shaman char1
will macros with an "all" tag be included together with macros that have the "char1" tag or will only "char1" macros be built?