Looking to gather ideas, I was looking at the ConTeXtunits’ module. The approach taken there is to create free-standing macros, such as \Second or \Candela, and to use them to build up a string of units. Like some of the LaTeX solutions, this means that the user has to manually include symbols (such as \Times) to get the formatting right. On the other hand, ConTeXt uses a glossary-like method for defining units (something I’ve thought about for siunitx in the past). I’ll certainly be thinking about something like that for siunitx version 2.