А что если надо сделать свои биндинги, которые не будут перекрываться любыми режимами? Поменять например C-n. Я не нашел иного способа, кроме хаков с перезаписью уже установленных keymap.
Т. е. так нет надобности перегружать emacs. А если просто делать M-x eval-buffer, значение хука будет хранить как "старую" лямбду, так и новую. Поскольку add-hook добавляет к списку хука очередное значение.
как правильно отметил ipc, вычисление add-hook с анонимной функцией, добавит ее в список, т.е. будут две (или больше) версий одного хука. если вы добавляете функцию, которая уже есть в хуке, то она не будет добавляться второй раз, а будет лишь изменено ее поведение.
P.S. у меня емакс висит без перезапуска неделями, хотя я периодически дописываю новые хуки, меняю старые, и все делается без перезапуска.
к тому же, выделение кода для хука в отдельную функцию, позволяет использовать ее в хуках для разных режимов - у меня например, есть хуки для всех программерских режимов, для lisp-based языков, и т.д.