I found this email thread here from 2008 where the relevant piece of code is:
staticDynamicTest.attributeAffects(staticDynamicTest.aCreateDynamic, staticDynamicTest.aInput)
staticDynamicTest.attributeAffects(staticDynamicTest.aInput, staticDynamicTest.aStaticOutput)
And then on a reply from Dean Edmonds:
Your attributeAffects() calls show aCreateDynamic affecting aInput and aInput affecting aStaticOutput.
That's a transitive relationship (A affects B affects C) however Maya only follows the first step in the chain.
So if a new value appears on aCreateDynamic then aInput will be marked dirty, but that will not ripple on to dirty aStaticOutput.
So maybe that could be why.
Perhaps it's by design, to avoid unexpected cyclical dirtying?
Link to the email thread: