A da się przecież prościej – i to od dawna. Przecież już w CSS 2.1 istniały pseudoelementy :before i :after. W 95% przypadków służą właśnie zastępowaniu nadmiarowych elementów, istniejących tylko ze względów „estetycznych”.
Moja propozycja: http://comandeer.pl/bzdety/menu-scroll.html
Zostajemy z jednym span (jakby dalej pokombinować i przerzucić :hover na li to prawdopodobnie zostalibyśmy z samym hiperłączem). Do tego zmieniłem selektory na zmyślniejsze (nie lubię takich poziomów zagłębień a myślę, że moje są nawet ciut szybsze). Zamiast tego data-name można np zastosować title. Ah – no i moje działa z :focus, więc TAB-owanie nie sprawia więcej problemów ;)
I to jest właśnie potęga CSS – kod w pełni semantyczny (no, prawie, jeśli się uprzeć o to data) a efekt wizualny wspaniały.