Well... if you want it done right do it yourself XD
Obviously, Qt has it's pedigree and Qt Bindable Properties are impressive in their own right, and I would never claim to be better than a team of veteran professionals; but, in this one case this (and a few other) quirk(s) of Qt Bindable Properties ended up bothering me enough that I decided to go nuts and take a stab at them myself. Although my system doesn't have quite the same level of polish as Qt's, I'm very satisfied with how they turned out.
So, if it happens that any one else:
Doesn't need QML integration (i.e. C++ properties only) Doesn't need to access properties abstractly through the meta-object systemand
Wants their binding evaluations to only ever run once per-update and never read stale values, such that the evaluation of the above example is always: 1) pStruct 2) pEmpty 3) pHellowith almost the same API, feel free to partake in my experiment :)
Qx Bindable Properties
There's an easier to follow example in the documentation for this above under "Advantages".