When I export LANG=de_DE.UTF8 the umlaut with ShowMessage() is still not shown, neither with or without cwstring. Carbon works as expected. LC_TYPE is UTF8.
And, last but not least, it would be a problem to set the LANG id for users.
PS: Maybe it's an interesting fact that "with CreateMessageDialog('Bär',mtConfirmation],[mbOk]) do ShowModal" is okay.