This language appears for multiple cases where the Return Code is "optional":
1991... an optional Return Code, an optional Property Length ...
but then later, there's a suggestion that the Return Code is required.
2004 The Client or Server sending the PUBREC MUST use one of the Return Codes in Table 3.6 – PUBREC
2005 Return Codes.