Не все функции могут быть надежно настроены (advised). Компилятор байт-кода может решить заменить вызов функции последовательностью инструкций, которая не вызывает функцию, которую вы хотели изменить.
Это обычно происходит из-за одной из следующих трех механизмов:
byte-compile свойстваЕсли символ функции имеет свойство byte-compile, это
свойство будет использоваться вместо определения функции символа.
См. Функции байт-компиляции.
byte-optimize свойстваЕсли символ функции имеет свойство byte-optimize, байт-
компилятор может переписать аргументы функции или решить использовать другую
функцию.
compiler-macro формы объявленияФункция может иметь специальную форму compiler-macro
declare в своем определении (см. Форма
declare), которая определяет расширитель для вызова
при компиляции функции. Этот расширитель может привести к тому, что сгенерированный
байт-код не вызовет исходную функцию.