Is there any sound technical reason to prefer POST?
Sì, se c'è un "cambio di stato", allora non dovrebbe essere usato un metodo sicuro.
Vedi RFC7231 :
Request methods are considered "safe" if their defined semantics are
essentially read-only; i.e., the client does not request, and does
not expect, any state change on the origin server as a result of
applying a safe method to a target resource
...
the GET, HEAD, OPTIONS, and TRACE methods are defined to be safe.
Anche da un punto di vista della sicurezza è preferibile utilizzare il POST, poiché qualsiasi server proxy aziendale (ovvero quelli con certificati attendibili per l'ispezione TLS / SSL) può registrare i parametri della stringa di query GET per impostazione predefinita (poiché fanno parte dell'URL) e verrà anche memorizzato nei log del server per impostazione predefinita.
L'uso del POST significa che questi valori hanno meno probabilità di perdere posti che non ti aspetti.