You don't have to bet on something clearly stated. Everyone else who read my motivation in OP won't bet against you :-)
Anyway, accessing deeply nested data is not the problem, neither is avoiding autovivification. I designed the data structure the way it was. I learn from the experience that structuring my database right would make me programming better.
But I see some point in your statement, and I agree with that. That's why I put the code accessing the data directly in a method (somefunc() in my example). And I have other methods doing this, accessing different branch from the same tree. They all check carefully to avoid autovivification to avoid larger problem for the next check.
Only those methods (in one class) need to access the data directly so client modules don't need to know the detail. The latter accomplish their tasks based on higher abstraction.
Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!
In reply to Re^4: Preventing autovivification while accessing value