There are sufficient pre-existing deployed implementation which require you to join the room first (as far as I'm aware) that the best you can hope for here is a MAY, or possibly SHOULD (but implementations exist that ...).
An alternative would be to have a disco feature of the MUC service indicate that joining is not needed for non-occupant actions.
