It needs them now, but it wasn't always the case.
In html5-20121025 User agents must treat elements and attributes that they do not understand as semantically neutral.
It was also in the grey area in HTML4.01 spec, note B.1 provides for user agents rendering any unknown elements.
Semantically neutral yes, but they are not divs -- they're "unknown elements", which have more annoying behavior (similar to pseudoelements from memory)
I think that's right. They start out life as inline-block elements.