This isn't the macro. The macro is just a regexp replace on the current word to <$1></$1>, though catching those tags w/o closing tag and using a condition in the replace string -- Michael Sheets has flirted with the thought of looking up the tag name and insert a customized snippet instead.
I rather thought so, my opinion is that all inline tags (p, span etc) should NOT have this behaviour, while all block should. hehe, which, when I think about it, is probably true, since h1 isn't a block level element as far as I know :)
Andreas