Não é para isso que servem os parâmetros ocultos ...?
<form action="http://www.example.com" method="GET">
<input type="hidden" name="a" value="1" />
<input type="hidden" name="b" value="2" />
<input type="hidden" name="c" value="3" />
<input type="submit" />
</form>
Eu não contaria com nenhum navegador mantendo nenhuma string de consulta existente no URL da ação.
Conforme as especificações ( RFC1866 , página 46; seção 17.13.3 do HTML 4.x ):
Se o método for "get" e a ação for um URI HTTP, o agente do usuário pegará o valor da ação e anexará um `? ' a ele, em seguida, anexa o conjunto de dados do formulário, codificado usando o tipo de conteúdo "application / x-www-form-urlencoded".
Talvez alguém possa codificar por cento o URL da ação para incorporar o ponto de interrogação e os parâmetros e depois cruzar os dedos para esperar que todos os navegadores deixem esse URL como ele (e validam que o servidor também o entende). Mas eu nunca confiaria nisso.
A propósito: não é diferente para campos de formulário não ocultos. Para POST, o URL da ação pode conter uma string de consulta.