[eluser]OverZealous[/eluser]
Are you reloading $work_example before saving it? Or at least setting the $id before saving it?
The _related_required validation routine works by counting the number of objects being saved, as well as counting the number of objects already stored in the database. It's not perfect — in fact, looking over the code, I realized that even the original DM version would overcount objects that were already saved in the database, but were getting saved again.
I did find a subtle bug in my version of the validation routine, but this would report a false positive, not a false negative.