DzNode has its own implementation of drawnDataChanged(), so I guess you could hook up to that one instead of the DzScene one.
Without having tried it, I guess the problem with “spam” messages will stay the same though.
A simple solution could be to hook up to the selected signal ( DzNode::selected(DzNode* node , bool onOff) ) and spawn a manual update once the node is no longer selected.
Of course, this has it’s own drawbacks - but at least you can handle your internal magic in a single slot definition in your own program (switch on the node->getLabel()).
If I had a better idea on what your are trying to accomplice I might be able to give a better suggestion…...