I've come to understand that dynamic properties always cascade downwards unless they are set below, rather than only cascading if they are forced to using the checkbox next to them. This is causing some problems that I have a workaround of sorts for.
However what I was wondering is whether there's a way of testing whether a dynamic property is inherited for the current page in code. I could then use this to only use dynamic properties that have actually been set on the current page, which would be preferable in this instance.