La raison pour laquelle il s'agit d'un pointeur vers Request est simple : les changements apportés à Request par le gestionnaire doivent être visibles pour le serveur, donc nous le passons uniquement par référence plutôt que par valeur.
Si vous creusez dans le code de la bibliothèque net/http, vous constaterez que ResponseWriter est une interface vers une struct response non exportée, et que nous passons la struct par référence (nous passons un pointeur vers la réponse) et non par valeur. ResponseWriter est une interface qu'un gestionnaire utilise pour créer une réponse HTTP. La structure réelle qui soutient ResponseWriter est la structure nonexportée http.response. Parce qu'elle n'est pas exportée, vous ne pouvez pas l'utiliser directement ; vous ne pouvez l'utiliser qu'à travers l'interface ResponseWriter.
En d'autres termes, les deux paramètres sont transmis par référence ; c'est juste que la signature de la méthode prend un ResponseWriter qui est une interface vers un pointeur vers une structure, de sorte qu'il semble être transmis par valeur.