As <a> is now allowed to wrap any elements rather than only inline elements and text, this is no longer such a big deal.
One thought is that it may be harder to detect illegally nested links if you had href on arbitrary elements ... in other words, would validators pick up on
<p href="/home.htm">On our home page you can read all <a href="/about.htm">about our company</a>!</p>
If you said that any contained links effectively outranked parent links (ie, clicking on "about our company" would activate the
about.htm link instead of the
home.htm link, you would open the door to lots of scope for googleabuse with nested links that never appear in the output.
You would also have a whole lot more CSS to write if you had to code for every possible element with
:link (etc) attributes, whereas when it's <a> it's a whole lot easier to deal with.
There are quite a number of issues, and I'm really not convinced that the benefits stack up.
Where's my default inline block container?
<div> is display: block by default. <span> is display: inline by default. Where's the default inline-block element? Also, I feel each major display type should have a corresponding element. <grid> for display: grid, <flex> for display: flex and so on. As for inline block - I'd vote for <IB> as its default container.
There's no need for a default inline-block container. Inline-block content is usually block content, so you just use a <div> and apply
display:inline-block; in the CSS. The fact that it is inline-block is just a rendering trick, in the same way as floating or positioning an element, but we don't have (and don't need) HTML elements for those.
Browsers will try to render anything. What if they didn't? I'd love it if I could get Chrome or Firefox to cease rendering on an error when testing my own pages. Never would be able to turn it on to browse the net at large because most pages have invalid markup, but it would be nice if browsers would at least help you learn standards instead of helpfully rendering everything thrown at them.
Yes, it would be nice – maybe if you suggest it to the open source community or to Opera they may be able to build it into a future version! Of course, running your pages through the validator is a pretty easy way to check (and Opera certainly makes this very easy, just right-click on the page and Validate is there on the context menu!) or, as Robert says, you could run them as XHTML.