Para o seu exemplo em particular, eu faria isso, já que você obviamente não se importa em ter o navegador para obter o redirecionamento de qualquer maneira (em virtude de aceitar a resposta que você já aceitou):
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index() {
// obviously these values might come from somewhere non-trivial
return Index(2, "text");
}
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Index(int someValue, string anotherValue) {
// would probably do something non-trivial here with the param values
return View();
}
Isso funciona facilmente e não há nenhum negócio engraçado realmente acontecendo - isso permite que você mantenha o fato de que o segundo realmente só aceita solicitações HTTP POST (exceto neste caso, que está sob seu controle de qualquer maneira) e você não precisa use TempData, que é o que o link que você postou na sua resposta está sugerindo.
Eu adoraria saber o que está "errado" com isso, se houver alguma coisa. Obviamente, se você realmente deseja enviar para o navegador um redirecionamento, isso não vai funcionar, mas você deve perguntar por que estaria tentando convertê-lo independentemente, pois isso me parece estranho.
Espero que ajude.