You need to look into YUI. It satisfies your requirements and is nicely cross-browser. Their datamodel is also built so as to support tables going against a server for the data etc..
Good stuff.. there's a learning curve there for sure, but it is well built and free.
I've used YUI, extjs, jqueryui etc. and all of them are good for what they do. My point was that these tools need to be natively supported by browsers so I don't have to worry about incorporating any additional UI library for basic apps. If the listbox (html SELECT) exists as an html element, why not a combo box?
It won't answer your question, but it will give you insight into the messy way the web evolves, which is about the closest thing to an answer you'll ever get.
Good stuff.. there's a learning curve there for sure, but it is well built and free.