The draft points out that the R6RS definition of string-titlecase in
terms of char-titlecase is incorrect, however, it doesn't give the
means to implement string-titlecase correctly. char-titlecase is
not only insufficient for the task, but unnecessary. A sufficient
utility might be char-titlecase* from Chicken's utf8 egg which
returns either a character or string if needed.
This is the reason I argued against the char-oriented case
procedures in R6RS - they not only aren't useful for correct
Unicode casing implementations, they actively encourage
incorrect ones. I won't argue against their inclusion if you
want them for backwards compatibility, but in that case we
should provide the missing pieces.