If a variable is placed in the collection with the same name as something from a datafile, it will be read from there. If you have a variable and it doesn’t resolve to anything, the raw string value will be used.
Variables at different levels will be used over others, if they have the same name
If a variable with the same name is declared in two different scopes, the value stored in the variable with narrowest scope will be used
The easiest way to answer your own questions when it comes to knowing if something works or not…is to simply try it out and see it for yourself