Почти.
Если поле SPKI пустое, то используется верификация сертификата сервера через встроенные корневые сертификаты в прошивке.
Но может быть такой сценарий, что прошивка устарела или сертификат еще не добавлен, или самоподписанный сертификат на сервере.
Тогда можно указать SPKI, и сервер будет валидироваться на основе этого значения - оно перекрывает корневые сертификаты.
Для DOT SPKI и валидация по корневым сертификатам работают только если указать SNI.
application/dns-message - это единственный формат DOH, стандартизованный в RFC 8484. Однако, Google не реализует dns-message, а вместо этого использует свой проприетарный формат application/dns-json.
Потому правильный ответ таков: указывать надо то, что поддерживает сервер. В случае c Google это только JSON.
Но некоторые серверы, в частности CloudFlare, поддерживают оба формата. В этом случае команда и URL выглядят так:
> dns-proxy https upstream https://cloudflare-dns.com/dns-query dnsm
> dns-proxy https upstream https://cloudflare-dns.com/dns-query?ct=application/dns-json& json