I can't remember if include scripts can manage script variables.
If they do, you could have an include script managing these variables and offering functions to get/set those variables.
You could even try to 'secure' the setters with a caller script parameter.
EDIT: After a few tests, as I kinda feared, this will not work.
Script.vars can be used in include scripts but they will be interpreted at runtime as the Script.vars of the script that includes it. So this will not be an efficient way to share between scripts.
So far, I can't see a way to protect the variables other than not having them global, but in that case, they can't be shared by the standard way of functionning of vars.
On first approach, I can not think of anything else than reverting to a file (could be handled by an include script that would centraly manage this, and can be as simple as a JSON file that stores an object with the vars names/values ... with a little work to do to transform to/from file the DOpus collections. On that point, I already did some things like that in CommonLogger to store a JSON object in a global var).