You said "Absolutely no luck is needed if you create functions or modules to access the data from somewhere else."
And that's all you said about it. Similar to dragonchild referring me to a long post in another thread. I stand my my statement that "You need luck when combining all code that requires a given piece of data into a single, scoped block, or region, because if you end up needing that data once you're working on a different part of the script (things like that come up in the real world), things can get messy."
If things don't get messy at that point, it's because you spent extra time programming in a different way than I do, and I don't think it's worth it.