the a element is broken/html's black sheep
Though technically links aren't a requirement to make the internet function (you can get by on just urls), they are the primary reason why the web took off so gloriously. Linking is an essential part of every web page out there, without links we would be copying urls the entire time (or we wouldn't because who likes to work like that). But the implementation of links (the html a-element) has been broken since the very beginning of the web and with the addition of block-level links things only got worse.
the fundamental issue
The first argument is a pretty old one (I think I first read it more than 10 years ago). The link element does not fit into the axiomatic content-design-functionality tripod philosophy of the web. A link is not semantic, it tells you nothing about the content within, nor is it structural. Instead it provides functionality (it transports you from one page to another) and it tells you the absolute address of the content it wraps. Now I understand that not having it built into the html would've posed enormous problems (you don't want page linking behavior to be part of the javascript), but a couple of years ago a serious opportunity presented itself to improve the html link implementation.
A part of the now long-dead xhtml2 syntax proposed a different implementation for links. Instead of using a separate tag (which is little more than an excuse for setting an href attribute), the xhtml2 syntax stated that you could just set the href attribute on whatever element that needed to be linked. A splendid idea that was discarded because of backwards compatibility issues (and probably rightfully so), but at least theoretically this implementation made infinitely more sense than the current one.
the nesting issue
Another recurrent problem is that links cannot be nested. When browser detect nested links they go completely haywire, spewing out all different kinds of crap code (I can't guarantee these older results are still correct but I sampled the different variations in my how to make your browser vomit article a few years ago).
Conceptually I still believe there is little wrong with nesting links (deeper-nested elements appear on top of higher-up elements anyway, so there's no real problem there), but apparently it does pose a couple of technical difficulties that prove hard to work around. It's a real drag if you want to block-link an entire html node (like an post preview) but still want an immediate link to the comments of the post. No good workaround exists, unless pulling the direct link out of the post view.
the block-level issue
The thing that annoys me the most is more of a practical nature though. Even though linked states of components have visual variations, the fact that the a-element changes the dom structure of linked elements compared to unlinked elements means that you can't make proper use of the descendant combinator (>) for styling. There are 3 main ways to tackle this, but none of them is very solid.
To illustrate the problem, imagine I want to block-link the post previews on my homepage. The unlinked html code would look like this:
<article class="post">
<header> ... </header>
<div class="main"> ... </div>
<footer> ... </footer>
</article>
A pretty straight-forward html structure (one I use for marking up content types all the time).
tag-replacement
<a class="post" href="...">
<header> ... </header>
<div class="main"> ... </div>
<footer> ... </footer>
</a>
One of the easiest ways to block-link a component is to simply replace the base tag with the a-tag (somewhat mimicking the xhtml2 ideology). It keeps the dom structure intact which at least in theory makes styling the component a lot easier and more robust to changes later on.
The problem is that you lose the semantic value of the base tag (article in this example) and once you're depending on html tags in your css selectors (you may have body.post, article.post and a.post) the switch between article and a tag becomes a real chore to manage in css.
outer wrapping
<a href="...">
<article class="post">
<header> ... </header>
<div class="main"> ... </div>
<footer> ... </footer>
</article>
</a>
Outer-wrapping the element helps to preserve child-selector constructions (like .post > header) by wrapping the a-tag around the component, but it introduces its own set of limitations. Context-dependent styling becomes a lot trickier (you can't just target .context > .post but also have to take into account .context > a) and when querying the dom for information you miss its link content when looking for posts (if you query for article.post it won't include the a + href, a pretty big problem for syndication by scraping).
While this setup makes the most sense from a traditional point of view (this is how we have always linked things, wrap the a-tag around the object we want to link), it's far from ideal when dealing with the css practicalities.
inner wrapping
<article class="post">
<a href="...">
<header> ... </header>
<div class="main"> ... </div>
<footer> ... </footer>
</a>
</article>
The final option is to inner-wrap a component, placing the link directly underneath the root-tag. Like I mentioned before, this completely breaks child-selector structures in your css, which is a pretty big setback just for wanting to link a specific component. Even though less (or sass) can help you along, it's far from ideal and results in an overload of unnecessary css rules.
On the other hand, the link itself is enclosed by the article tag, which feels right from an html structural point of view (since the link contains the url for the detail view of the linked component). For that reason alone I've been using this option ever since block-linking was allowed.
conclusion
I'm not happy with html links. From a conceptual point of view their implementation makes no sense at all. Even though I get the backwards compatibility issues, I feel that the current setup is not really sustainable, so some sort of path forward would be nice.
On top of that, it's pretty sad to see that one of the most essential elements of our language is so badly crippled and makes such a mess of our code. In general I'm glad html5 made the cut, but in some rare cases I wished that more ideas of the xhtml2 syntax had survived.

Comments
Chris Bracco
Couldn't agree more, I find this to be very frustrating as well. I just came across this little thing and thought I'd share...
http://jsfiddle.net/csswizardry/rxsna/
The links are not really nested, but it does give that effect.
Me
It's quite funny. I can't read this article and I am making a good effort writing this comment as I see a bar floating in the middle of my screen - I am on iPhone.
On the other hand, to access this web page I have clicked a link.
Justin Kruger
Just write a polyfil in javascript for the functionality you desire on your site. It shouldn't be that hard to implement.
Niels Matthijs
Myeah, Webkit browsers have serious issues with fixed element. Working on that, but for now you can always switch to IE10/WP (or maybe android, can't test right now)... no issues at all ;)
That said, my mobile audience doesn't really warrant sufficient extra effort yet, maybe in the future.
Mentifex
When you talk about "nesting" of links, I am not sure what you mean. If TimBL or any other Web-creators are listening, I would like to propose a special kind of "nesting" of URL-links within the anchor-tag -- a default passage through a series of additional URLs for a resource if the primary link becomes unavailable, through normal "linkrot" or "SlashDot-effect" or whatever. If you link to a document like Lincoln's Gettysburg Address and link-choice number one returns a "Code 404" for "not available," the anchor tag ought to be able to swiftly call up the secondary nested-link-choice and provide the same Gettysburg Address from the secondary URL, or the third, and so on. Any takers?
Niels Matthijs
My prime example for nested linking: just check the post previews on my homepage.
For now they are block-linked (the entire view is a link to the detail page). It's better than just linking the heading and using multiple links to the same detail page is entirely out of the question.
The problem is that I want a separate link on the "x comments" spec, linking to the same page but directly to the comment section. It's not really a link to a different page, just a different section on the page. I could make it so that the comment link is not nested inside the block-level post view link, but that would make 0 structural sense.
So yeah, nested links, they do make sense.
Mentifex (Arthur)
Thanks for the clarification. Meanwhile, I have linked to this blog-post and shared my newbie-esque Comment with a message http://groups.google.com/group/comp.infosystems.www.authoring.html/msg/4929c522cf846257 on Usenet.
Ian Pettman
Interesting, however, when I write a blog/how to/etc article I'd rather like people to read it to the end. Hopefully I've made it sufficiently entertaining that they do. So I try not to incorporate links actually in an article, but in an appendix at the end. After all, I really dont want them clicking away and never comming back for the punch line....
Niels Matthijs
Ian: I'm an "open in new tab - middle mouse click" guy ;) That actually gives people the choice between catching up on something before they read the rest of the article or reading it afterwards.
Ulf Langenbach
My personal pet peeve with the a tag is its double semantics - it is both startpoint and endpoint of a hyperlink. This would have been mended with the href attribute been made general too, of course.
Brian Allan
Interesting!? We've done web development for the past 15+ years and never found this to be a problem...
Chris
Would you mind fixing your article text area on your site so that scaling above 125% still is readable? At 150%+ the right side of the text extends into the right column area.
Niels Matthijs
Chris: I would love to if you could tell me what browser, OS and what zoom type (text zoom only or visual zoom?). I tried a couple of browsers and I cannot reproduce the problem.
biorhythm
That's strange indeed. After many years using a hrefs on my websites now I'm finding that there's something wrong with it. I considered this element as nobrainer. Anyway, you've made your point. Very eye-opening post. Thanks. P.s. On my android chrome this website looks and works like charm.
bufalo1973
I think href could be used as xhtml2 as you say. I can't see any drawback. If it was for a compatibility issue, why wasn't an issue when other tags where added? Anyway, now WebKit + Gecko have a large share so if those do understand the "href in any tag" there would be no problem at all. Trident would be only partially a problem because you can send another page for it (hello again IE5/6 problem, I know).
pioul
One thing you can do to wrap block-level elements into anchors is to use what everybody has been using until HTML5 allowed anchors to contain block-level elements.
Just write your block-level elements like you want to, and position an anchor right over them.
This way, the anchor element doesn't wrap the others in the DOM, but it does visually.
Applied to your example, it would look like this: