Thank you for taking the time to answer my request!
My apologies in advance for the long answer here.
Well, my goal has always been to set up my add-in one time, and then not ever have to go into the add-in again.
Ultimately, my only request was the ability to do this, and how that gets accomplished was not my concern,
but I was trying to be helpful by suggesting a way.
Since you have added the "Use Global Settings" boolean at the project/solution level,
which refers to global settings,
any setting on the global node that speaks about when global settings apply to projects could be inconsistent
if it said "Always" and the project "Use Global Setting" remained "False".
I was saying "Always" would override any project's "Use Global Settings" false value and make it True,
simply to keep the two settings logically consistent and in sync, and to prevent that confusion which you speak of.
I admit, it would be confusing for a short moment if someone set it to "Always" globally,
then went into a project and tried to say "Use Global Settings"=> False,
only to see that it was stuck on true. But I think that confusion would go away quickly.
That stuck on true behavior would help teach them what that global setting "Always" does,
and if the help text for the "Use Global Settings" project property was expanded to explain that behavior,
that help text ought to be where this user would look first to explain the unexpected behavior,
and they would realize they need go into Global node to set it to something besides "Always".
The "Use These Settings" help text could also spell out what each enum value does.
You could also add a label to the bottom of the dialog box that is visible when global settings are in effect.
That label could say "Using Global Settings". It could be colored to draw attention.
This situation would not happen by default, but only for users that went in and set it to "Always"
and did not understand at first what they were doing, since "OnlyWhenChosen" would be the default.
Also, they would have to ignore the help text and documentation to be confused.
Understand that I am not saying I would like to see the project's other property values get over-riden.
By coding it the way you coded global settings,
what you did (whether you intended to or not) was give the ability to
temporarily use global settings and then revert back to the specific project settings.
I consider that a feature.
The only project property value that would change as a result of "Always" would be "Use Global Settings".
The add-in would keep remembering the specific individual settings of each project as it does today.
"If you're importing projects, you'll have to set it one time to true and forget afterwards."
Unfortunately, my forgetfulness is not at the project level, but at the global level.
I merely forget the add-in is there, and that I need to apply it to each new or yet to be configured project.
I have forgotten to do this many, many times since I downloaded it in August 2009.
I have 100s of projects. It's only a great tool if I remember to use it.
My strength is creativity and logic in the present moment, not memory of any routine thing.
Memory is my weakness.
If all you end up being able or willing to do is "OnlyWhenChosen" and "Initially", I will set it to "Initially".
In that case I ask that you use any internal function you have which determines
if the project has been incorporated yet into your add-in,
and if not, consider that also a project to "Initially" configure (I'm talking about the "not yet configured" projects),
in addition to the new ones.
In that case, a boolean would do.
However, note that if you make it an enumeration, it won't cost you anything,
and you give yourself the flexibility to expand later,
if you ever dream up another value you could make use of.
Many times in my projects, I have left room for expansion when I thought I would not need to,
and then ended up needing to. It seems change is the only thing that doesn't change. :)
A property name of "Use These Settings" leaves it open to multiple values;
a property name of "Use global settings as default" seals it as a boolean,
as this property name actually contains the property value in the property name ("Use global settings
and merely asks whether or not they want that value.
But anyway, I think now you understand at least where I'm coming from,
and I'll benefit from whatever you do.
My emotion has been, is and will continue to be just gratitude.
And you should have seen my 12 year old son's eyes when I showed him
how you put my request into your project!
You helped me show him that he can make a difference in the world if he tries to be helpful.
Have a wonderful day,