Sure, Arnd.
1) gf_bad_date_message(GetText(), "donation"), where obviously that is a global function of mine that takes 2 string args and returns a string, returns "!" from your code. The same thing with 'donation' instead of "donation" also returns "!".
2) A simple single quotes string like 'Please enter a valid amount' first pops up a message box with the title "Data Entry Error" and the body "Expression is not valid", then returns "!", with your code. The same thing in double instead of single quotes is fine.
All of those versions (with either type of quotes) work fine with my more complex code.