Well it seems only logical to me that mame could easily do the searching for you.... afterall, it does it for all the other list functions.
For example typing mame sf2 -listxml should give you the xml data for just Street fighter 2. This would prevent the initial lag of actually printing out the whole 16 meg xml file. In My FE this doesn't cause much trouble as I want the whole file anyway, but in the viewer and some of my mini apps it does. I don't want users to have to either setup a centralized place to store a listxml file for all their various apps or have multiple, 16 meg files on their harddrive. And beyond that, I don't want to have to generate a 16 meg file just to parse about 10 lines of text from it in the case of apps that you just use data for a single rom at a time.
I would like to report that it seems Aaron is adding a lot of data to the listxml file. It's still not complete yet compared to other methods of getting data, but it's getting there.