Комментарий @Malabarba объясняет вашу проблему.
kill-local-variable действительно избавляется от привязки локальной переменной. Но поскольку в вашем случае переменная автоматически является локальной в любом буфере, то при переназначении ей значения это значение является локальным.
AFAIK, нет способа противостоять make-variable-buffer-local, кроме как использовать uninternна символе. ( makunboundне помогает.)
Если вы используете Intern, то все в порядке. Но имейте в виду, что использование символа "без" приводит к удалению символа в целом, поэтому, если вы использовали символ для чего-то другого, кроме переменной, то это может привести к негативным последствиям.
Таким образом, единственный ответ, который у меня есть, - это использовать, uninternа затем переназначить переменную на любое значение, которое вы хотите - это будет глобальное значение.
make-variable-buffer-localне используетmake-local-variable.