Por acaso, você está usando --skip-grant-tables na sua inicialização do daemon?
Da documentação para CREATE FUNCTION
An active function is one that has been loaded with CREATE FUNCTION and not removed with DROP FUNCTION. All active functions are reloaded each time the server starts, unless you start mysqld with the --skip-grant-tables option.