Исходным кодом из документации
func HandleFunc(pattern string, handler func(ResponseWriter, *Request))
Как вы можете видеть, он передает функцию, которая должна иметь указанную c подпись. Он не вызывает ничего, просто использует указатель на него. Функция будет вызвана пакетом. Таким образом, для вызова пакета необходимо знать, какую подпись вызывать.
Вы можете подумать, что это интерфейс. Это просто декларация, реализация - это другое. Аргумент передается автоматически пакетом http, когда кто-то переходит на ваш URL.