Yo no veo por qué ha de ser poco elegante no ocultar el formulario, pero lo hagas o no, pienso que te estás liando de más y te evitarías problemas si mostrases el formulario con ShowModal:
Código Delphi
[-]
Application.CreateForm(TfrmformC,frmformC);
Self.Hide;
frmformC.ShowModal;
frmformC.Free;
Self.Show;
Por otra parte, no es lo común destruir un formulario desde un botón de él mismo- y si lo haces, se recomienda usar Release en lugar de Free (Destroy nunca) -sino desde fuera (como escribí arriba) o en su evento OnClose poniendo el parámetro Action igual a caFree.
// Saludos