@richardo I appreciate your input. Still I'm not sure I really like this approach that much better.
As for the cycle, I couldn't see any of those usual cyclic property warnings that QML gives you in those cases. I think this cycle is already properly broken by using the correct construction in setMyCppValue:
void setMyCppValue(int newValue)
{
if (newValue!=myCppValue)
{
myCppValue = newValue;
emit myCppValueChanged();
}
}