Would go with B here. Modules only get access to what you pass via module inputs, they don't inherit parent variables unless sent explicitly. Makes it very predictable but sometimes I forget that edge case when refactoring big configs. Unless the question is about outputs or data sources (which can be shared differently), this fits Terraform's module scope rules. Anyone disagree if the variable's output from the parent though?
I could see why someone might pick A, since sometimes it feels like child modules should just inherit from parents if the variables are declared up top. But unless you use explicit inputs in the module block, those variables aren't automatically available. Pretty sure that's a common trip-up. Disagree?
This came up for me too on practice questions, it's B. Child modules can't just reach into parent variables, they have to get them passed in as inputs. Keeps things nice and isolated I think.