Thanks for the reply. However, after I made the original posting, I dug a little deeper in the internals of the Repository and the Web Client. What I ended up doing was using standard classifications (categories) to define my controlled vocabularies. The controlled vocabulary properties (of type "d:category") are displayed using a UISelectOne JSF component (in edit mode, that is) by having the web client configured with custom Component Generators and accompanying Converters.
While I'm happy that it works, I do feel it's too involved and too complicated a solution. I came to understand why Alfresco is phasing out the usage of JSF (and thus the Web Client) in the long run.