«Это должен помнить каждый»
В InnoDB, внешняя ссылка, даже если она not null может не иметь соответствующей записи в соседней таблице.
Если выключить foreign_key_checks, внести изменения в базу, а затем включить foreign_key_checks, то MySQL не проверит консистентность данных (хотя по аналогии с enable/disable indexes следовало бы ожидать противоположного).
Случиться такое может, например, если прервать заливку дампа где-нибудь посередине.