From an SEO perspective, it doesn't matter too much. There's some speculation that, in general, a high content-to-markup ratio is better for SEO. But I've seen no real evidence for this. This often repeated statement is probably generalized from the fact that high quality pages generally have lots of content, and pages with lots of content will have a high content-to-markup ratio.
It's also possible that this popular conception originated from the days when major search engines only indexed the first X bytes from your page. While this may still be the case to an extent, the limit is generally high enough that for all practical purposes, it's a non-issue (if it is, then you're either a corner case or you're doing it wrong). Anyway, see John Mueller's comments on the issue here.
That said, you rarely see the style of markup you propose because:
- A heading is a heading. Headings are short labels for a section of content, and there's rarely any need to specially style different parts of it. That isn't to say that there's never a circumstance where it might be required/appropriate, however, just that in generally it's not needed.
- Semantic markup dictates that your markup should be structured according to the smeantics of the content. Again, a heading is a heading. There usually aren't complex semantics involved. So it's likely someone using that style of markup is violation the separation of presentation and content, and the classnames
are probably presentational descriptions (e.g.
underlined, etc.), in which case it's no different than using
- Lastly, manually inserting such tags into each heading is going to be very time consuming for little to no reward. I suppose if they're arbitrarily inserted, then that process can be automated, but what would be the point?
So there are plenty of reasons not to do it, but SEO isn't one of them. It's not likely to add any semantic information to the document, so the search engine will just strip out the tags and treat it as "Hello! welcome to my fantastic website!" in either case.
As you mentioned, for semantic information there is some overlap in functionality between HTML5 microdata and using classnames as per microformats. You just have to decide which is more appropriate in a particular scenario based on features, markup length, support, and difficulty in implementing each.
Here's an example from Google's Webmaster Tools help of how you can convey the same semantic information about a recipe using microdata, microformats, or RDFa.