romident is reasonably fast with the current set of xml files:
time ./messd -romident ~/Projects/Emulation/MessSoftware/neogeo_pocket/roms/0116\ SNK\ vs\ Capcom\ Card\ Fighters\ Clash\ 2\ Expand\ Edition\ \[\!\].npc
0116 SNK vs Capcom Card Fighters Clash 2 Expand Edition [!].npc= snk vs. capcom - card fighters 2 - expand edition (japan).bin ngp:svccard2 SNK vs. Capcom - Card Fighters 2 - Expand Edition (Jpn)
Currently there is no locking down, but that could be added by signing the xml files and checking the signature when starting the emulator or when opening an xml file.
That's actually a lot faster than I expected, I wonder how well it will scale.
I'm still not convinced on the security / signing side of things yet tho. The last thing I want is people reporting bugs using older xml files and set names because they prefered to not update their roms (which changes to the roms could easily have renamed sets and replaced bad dumps etc.)
The developer / publisher thing I'm not sure about. The same rom can potentially be published by different companies in different regions anyway. Mame tends to put all of that info into one field, which isn't always optimal, but there are so many variations it's impractical to do much else. (most Toaplan games have about 4 different licencees for 6+ regions, and they don't get listed)
For longer dates, it might not always be practical either.. MAME has a policy of using the year of the first published revision. Of course, except for with games where the software contains version information, or the rom labels are useful it's hard to know if the supported sets really are the first revision anyway. Of course, it would help solve 'which came first xx or yy' debates when the year is the same which comes up quite often with similar early arcade titles when they were being pumped out in the 80s.