Perhaps, it may be acceptable to add a global control enum (to the control API) for the ALSA card which may modify the driver behaviour / settings at runtime (normal operation, battery saving operation etc.). This control can be set in the UCM config. In this way, we don't need to touch the PCM API for the user space at all.
If there was a mechanism based on ALSA controls for an application to query capabilities and set what it want to disable that would be fine. hwdep would be fine as well.
I don't get though how this could be 'set in the UCM config', different apps might have different needs. UCM files don't currently make assumptions on which application uses them, do they?