No worries; it's better for authors who find issues (whether they turn out to be issues or not) let others know about them, and it's good of you to take the time to create a test case too.
RyanReese is correct when he said this issue relates to whitespace. Moreover, IE8 isn't ignoring the whitespace text node inserted after the last child element in the DOM, which is generally the accepted behaviour when rendering HTML.
Take the example below:-
The DOM spec says that there are five child nodes of #test; /n, <span>, /n, <span> & /n.
It is generally accepted that for HTML when dealing with inline-level elements, the only whitespace node that will be rendered will appear between the two SPANs, and the others will therefore be ignored. However, IE8 is rendering the last whitespace node in that series (which appears after the last SPAN element).
I've created a reduced test case which demonstrates this behaviour further.
Although I don't have any official documentation to hand that describes the expected behaviour, it's still something I deem important enough to submit a ticket about. Kudos again for spotting it!
EDIT Although my answer goes some way to explaining the issue, it doesn't explain why :hover is behaving the way it does in your example. I'll try and take a look at this aspect later