Slowly, I am starting to enrich base.xml with additional meta-information (and use it in gnome-keyboard-properties). As a first step, I've added non-translatable (who would translate "Microsoft" to Russian anyway?) vendor name. The model choser on my HDD looks like this:
Thanks to GObject (namely, g_object_set_data), the libxklavier ABI will not change, while API will get a set of #defines.
PS. Richard, it is not a problem to automate chosing XKB model using HAL. All you need is a table mapping USB (or any other HIDdy bus) IDs to XKB model names. And a bit of code in g-s-d.
PPS. And it seems I will never ever ever ever get my hackergotchi setup on p.g.o.