You may have for example USB microphone and USB speakers plugged to the system (each represents one card for the ALSA driver with different USB physical links). UCM can join these two cards as one "virtual", so if an app asks for playback device, USB speakers are returned and for capture device, USB MIC is returned. Only one alsa-lib's device should be returned for given verb/device/modifier identifiers. I admit that the PCM configuration for alsa-lib allows this too, but UCM handles also the mixer control mapping.
Makes sense now.
Anyway, your questions are mostly about the abstract mapping. The purpose of UCM is to allow any abstraction, so strings in the header file like "HiFi" or so are just common cases. But anyone can create own abstraction for different purposes.
Most of my questions are not really on the abstraction but really on how to handle devices that can be plugged or may not be active at all times. USB, HDMI, Wireless/remote displays fall in this category. So on top of the traditional local headset/speakers, I can either have a variety of devices that can be used for the same use case. It's still not clear to me if I would need to create a set of new verbs (hifi_usb, hifi_hdmi) or if I can stick to the existing verbs and add a modifier? Thanks for your comments, -Pierre