How can this be intended? At one moment, the Angle values are 60° on the outer and 0° on the inner boolean object, resulting in a a difference between the cube of 30° and a rotation of both of 30°. The next moment the values are 60° and 1° resulting in a angle of the cubes of 59° and a rotation of 1°. Going back to 0°, the resulting values are 60°/0° instead of 30/30 as before. This can't be intended.
edit I called the second screenshot "correct", but that is only in a certain view the case. I changed the angle by 30°, so the entire thing should rotate by 30°. But now the angle between the cubes is still 30°, but that value is stored nowhere, there is only 60° and 0°. Thats the reason that as soon as one updates the second value, since that initial 30° is stored nowhere, it snaps to an angle difference of 60°. So rotating the base does not properly rotate the children (unless you never update their values).