Why not simply regard "<foo/>" as equivalent to "<foo></foo>" regardless of vocabulary?
It makes DOM building much simpler if the rule for self-closing tag syntax is not tied to vocabulary. For example, notice that the self-closing "a" in the first box below is not closed in some DOMs until the beginning of the next "div", rather than the end of the parent "div". (Watch the colors.)
This box has self-closing tags for "a" and "p".
This box has explicit end tags for defacto empty "a" and "p".