The Javadoc for UIMessage and TLDDOC for h:message describes it as one that takes a clientId. This was
never the intent - this should always have been a relative ID, exactly as in h:outputLabel. As specified,
h:message is incredibly difficult to use. IMO, this is an errata, not a spec change, though for backwards
compatibility I'd recommend continuing to look for messages in addition as if "for" were for clientIds.
FYI, the MyFaces implementation matches the original intent and user expectation.