Если я в коде по прерыванию отключаю обработку этого самого прерывания, например на пару секунд, то прерывание действительно не будет обрабатываться эти две секунды, но если оно было, то будет обработано сразу же после следующего подключения прерывания.
Это описание верно только для прерывания срабатывающего по фронту сигнала. Прерывание срабатывающее по уровню сигнала нигде не запоминается. Вне зависимости от того, было ли оно запрошено в то время, пока оно было запрещено, если оно не запрошено в момент разрешения прерывания -- прерывания не случится.
Верно ли я понимаю, что микроконтроллер запоминает факт прерывания
Верно для прерываний срабатывающих по фронту. Неверно для прерываний срабатывающих по уровню.
не может этот флаг скинуть, пока как раз таки я снова не подключу прерывание и он тут же радостно мне его передает?
Неверно в общем случае. Флаги запроса прерывания могут быть доступны через регистры, иногда эти регистры можно программно очищать.
Возможно ли как-то переопределить данное поведение?
У некоторых прерываний можно настроить, срабатывают они по уровню или по фронту. Например, у Atmel можно настроить как детектируются внешние прерывания INT0 и INT1 -- регистром EICRA.
Или скинуть каким-то другим способом этот флаг?
Опять же, на Atmel флаги внешних прерываний лежат в R/W регистре EIFR, в нужные биты которого можно записать 0, чтобы очистить запомненный запрос прерывания.