Hmm, custom elements are an interesting loophole. If you define your own set of tags and provide JavaScript implementations for them, I guess it would run in a browser, but is it really the same language anymore, and does it matter?
The analogy would be more like defining custom functions or classes not in the standard library. It's just encapsulation that can then be used by name. They can't be inserted arbitrarily regardless of syntax like a macro can be.
It is just a subset of HTML (as is amp). Most email providers that accept HTML formats already only accept a subset of HTML. This is just a different, more formally defined, subset.
HTML is an application of SGML / ISO8879. It defines its own domain and that's the scope of it. It's a leaf.
XML is a subset of SGML and can have further subsets and implementing applications I.e. it is a branch. As noted above, XHTML was a leaf on this branch.