Many thanks Andreas - that's certainly more concise than using a lambda.
I do think this is a trap for users who may expect that a key definition that a single character string simply specifies the character to be inserted when that key is pressed rather than a macro. Treating a string with a single character as a character to insert rather than a one-character macro might avoid that, or if that is awkward to implement or otherwise undesirable an explicit warning in the documentation might help. The documentation for define-key does say that a string is treated as a keyboard macro, but the significance of that is easy to miss.