The puppet server caches custom functions. If you edit an existing function (e.g. while you’re developing it), you’ll need to restart the puppet server before the new version can be used.
That also means you can't test functions in a different puppet environment. And also if you have changed functions in a different puppet environment (where you e.g. test some new module version) and this environment runs at first after a puppetserver restart, you have this changed functions also in your production environment.
Changes in modules/$FOOBAR/lib/puppet/parser/functions
indicate a change of functions executed on the puppetserver.