(setq fill-column 72) годами лежал у меня в init, и только сейчас выяснилось, что M-q в свежем буфере по-прежнему переносит на 70. (В *scratch* переносит на 72, отсюда и самообман.)
fill-column автоматически становится локальной для буфера. Если задать такую переменную через setq, значение по умолчанию не меняется. Создаётся локальное значение в том буфере, который текущий, когда строка выполняется. Во время init это обычно *scratch*, так что 72 получил *scratch*, а все остальные буферы начинали с нетронутого значения по умолчанию.
(setq fill-column 72) ; local to the current buffer only
(setq-default fill-column 72) ; the value new buffers start with
C-h v fill-column прямо в тексте справки пишет "Automatically becomes buffer-local when set". Эта фраза попадалась мне раз десять, но со своим init в голове не связывалась. Теперь прохожу остальной файл в поисках той же ошибки.