The SVG content model is not enforced well at all, especially for non-text nodes.
Just as an example, the following should not be allowed:
Some investigation later... we do do this correctly after all.
The content model is enforced on the render tree, but not the DOM tree. I manually spot checked that we do this correctly and found that we do.
Closing bug, apologies for the noise.