It is now many years, later, the current version is SketchUp 2017, yet I'm still seeing the exact same issue with a complex dynamic component.
The basic problem is that there are no global attributes in Dynamic Components: only local attributes that can be seen one level up and one level down in the hierarchy. I thought that this severe limitation could be bypassed by creating some lower level attributes the refer up to "parent!" attributes at a higher level, and others at higher levels that refer down to "child" attributes at lower levels, but it does not work. SketchUp does not traverse the entire hierarchy in both directions with each refresh or "redraw": it only seems to go down each branch once, so lower level attributes cannot be passed up one branch and down another.
Thus, the ONLY option is what the original poster already discovered, years ago: calculate all attributes at the highest level, and then pass them down each branch. There's no way to reliably pass things back up again, nor to pass things between branches of the hierarchy. It's a great pity, as adding the simple functionality of global attributes would solve the problem entirely, and completely avoid the need to be passing things around between levels!
Hopefully one day the SketchUp developers will figure out how to implement global attributes. Is this product even still being developed? There doesn't appear to have been any changes or updates to it at all, in YEARS! I have seen changes to the version number each year, but precious little in the way of new features, or even bug fixes. Is this a dead product?
In the meantime, your solution is the only way that works.