I have scanned WD14 for all cases of may or MAY. This is the list of occurrences that I found that I think are problematic. There are a number of lower case mays in Non-Normative text, and I am ignoring most of them here.
1. Lower case mays which should be upper case MAYs
None
2. Lower case mays which aren't RFC 2119 MAYs. For the avoidance of doubt I recommend these get changed to an alternative, as shown in the proposal
- 3.3.2.3.8
- 3.4.2.1, 3.5.2.1, 3.6.2.1, 3.7.2.1, 3.14.2.1
- 3.5.2.2.3, 3.6.2.2.3, 3.7.2.2.3, 3.9.2.1.3, 3.11.2.1.3, 3.14.2.2.4, 3.15.2.2.4 (User Property)
- 4.4 footnote
- 4.10.1
- 4.13.2
3. Upper case MAYs which should not be.
- 3.14 "The Client or Server MAY send a DISCONNECT packet before closing the Network Connection". This is borderline, but it's not really an optional implementation thing, so I think this could be a "can"
-----------------------
In passing, one thing I found a bit surprising was "The Server MAY check that the contents of the CONNECT packet meet any further restrictions" in 3.1.4. This is ok regarding RFC 2119, but it means that, for example, a server that doesn't like the Will Topic can choose to ignore it and reply with a 0 return code, so the client is none the wiser