I don't remember if I ever looked at rich:pickList specifically. This stuff is actually not that hard though. I just use FireBug to find out how RichFaces does its rendering and then use XPath to pick out the HtmlElement(s) I need. Then you generalize it into an API like the ones you suggested. Take a look at the code for RichFacesClient to see how it's done.
Part of the poblem is that everybody has their favorite components and each component renders things a different way. So it takes too long for one person (like me) to go through every component and create a special API for it. Help from the community is important here, so if you've got the time to do it I'd love to get your API into the main code base.