Almost all the 6 userform_child_item_allowed_dynamic methods are bad!
Luckily the methods used by boolean and integer (that are the most commonly used) work fine but the problem is still very relevant because those methods are responsible for the evaluation of the input provided by the user.
This is the story.
Parent and child in the same page.
Provide the parent with the answer allowing the child.
The child becomes enabled.
Provide an answer to the child.
Return to parent and change your answer.
At submit time mform submits the answer for the child too!! GRRRR
So, the method userform_child_item_allowed_dynamic verify if the submission was expected and, if needed, it drops it.