De este ejempo, aunque es algo que se puede aplicar a muchos (por no decir todos) los casos. Un usuario "normal" no intentará nisiquiera poner alguna "trampa" en tu URL para burlar tu sistema de seguridad (o ponerlo a prueba). Eso lo hará alguien con algún conocimiento de programación, bases de datos, etc. Ahora, un usuario con ese conocimiento, así como puede darle valores engañosos a tus variables por URL, fácilmente también podría alterar tu formulario, o más práctico aún, crearse uno con el action dirigido a tu página. Hay alguna ventaja entre uno y otro?
A lo que voy es que en ambos casos hay que validar los datos que entran (No porque los estés enviando por medio de un formulario y usando un método POST ya no los vas a validar). Y tiene que ser la misma validación en ambos casos. Ahora te pregunto, sabiendo eso, qué es más práctico?
Hay ocasiones en que se necesita mandar datos por POST, no es necesario mencionar casos, pero, para pasar un id? una palabra? Vamos, es complicarse las cosas, cargar el HTML de formularios "innecesarios" y del lado del script php aumentar código sólo por no usar la URL.
Pero como te dije, es mi punto de vista.
Saludos,