да, это связано с замыканием, в момент создания анонимной функции, эта анонимная функция запоминает внешние переменные, в данном случае функцию slow, которая хранится в func, где-бы не вызывалась эта анонимная функция, она вызывает первоначальную функцию slow. Почитай у Кантора.