/hop [-cn] [#channel] [message]

Parts the current channel and joins a new one. If no new channel is specified, it parts and rejoins the current channel without closing the window.

The -c switch cycles the specified channel by parting and rejoining it.

The -n switch minimizes the channel window.

Behavior: When the -c switch is omitted, the [message] parameter is ignored. It is only sent when -c is present.
Expected behavior: A part-message is sent to the server whenever a message parameter is used.

The -c parameter means that the /hop command will only act upon an existing #channel window -- parting the channel and re-joining it -- otherwise a new #channel window will be created (same as /join).
Absence of the -c parameter means that the /hop command will only act upon the $active #channel window -- parting the active channel and joining (or re-joining) the channel specified in the command.

It doesn't seem congruent to only pass the part-message from the [message] parameter for the former, but not the latter.

Well. At least I won lunch.
Good philosophy, see good in bad, I like!