I've always used mixed-case messages where possible. My CICS AXM run-time environment (used by the data sharing coupling facility servers) always translated any message with a table AXMMSTAB before issuing it, to ensure that any unprintable codes were replaced with some safe substitute. I was aware of the potential lower case problem with older Japanese code pages and provided a zap to the table to convert lower to upper case as a temporary bypass, and it seems from the current CICS documentation (search for "AXMMSTAB") that this became the documented method and was considered an acceptable solution, probably because newer Japanese SBCS code pages (such as 939) included lower case characters with the usual code pages.
HLASM itself has an upper case English message language option which is simply implemented by assembling the mixed case English messages with an option that tells the macro to use the UPPER function on the text. There is of course an annoying problem with multi-lingual messages where an insert can require the singular or plural form of some other word. I don't like things like "1 errors" or even "1 error(s)". Back in the day when all messages were only in English, I usually included the "s" in the original text but used the BCT instruction on the numeric insert to determine whether to blank it out! Jonathan Scott