Why is a change notification interrupt run without the flag bit being set?
A PIC32 change notification (CN) interrupt will only be started when the flag bit is set. If you are in a CN interrupt you may find the flag bit is cleared (0) before you clear it.
The CN interrupt is persistent but the CN status flags are not persistent (i.e. not latched). If the first mismatch on the port pin triggers the interrupt, it may be possible that the second edge comes in during the interrupt and effectively resets or cancels the mismatch so that the status flag is reset to zero.
You may want to use the change notice EDGEDETECT function instead of the pin mismatch. This mode also sets the CNFx register bit(s). Please see the Family Reference Manual (I/O Ports section) for more detail.