No. The only element that can be a direct descendant of ul is li.
But that does not mean you should create an empty li. Apply the class to which ever element requires it, be that the ul or the last li.
No one is using IE which is that old, let it go.
I believe you actually want to ‘contain’ them with in the ul rather than just clear them.
You can use the clearfix technique to contain the floats without extra markup or if you don’t need visible overflow apply overflow:hidden to the ul and the floats will be contained. You can also use display:table for the ul as long as you specify the width at 100% and that will contain floats also.
Actually inline-block will work back to ie5 if done right
No its the ul that needs to be contained otherwise the ul remains at zero height. If the ul has a background color then it will not show even if you clear the element after the ul and you can’t clear the last list item if they are all floated as that would break the layout.
Clearing and containing are different concepts (which I know you know)