When setting a branch to draft, a warning should appear letting the user know that any content items in the branch that are currently in DRAFT will be overwritten / lost.
A client of mine recently lost weeks of HTML page changes that were all in draft. They wanted to approve branch (rather than approve each item one-by-one), so they set the branch back to draft and lost weeks of work - hundreds of changes (yes, I know they should have set the parent nav node to draft, but that's not the issue here - them losing everything due to no warning is the issue). They could not restore from the previous night's DB backup because there were many content editors in the system and many of them had already done changes throughout the site for the day.
This should probably be implemented on the UI event that requests this process.