@Bill Nelson
Terrific solution! I did learn something - thank you! Just for the record: I was going to come up with something terrible (doing by hand what Simplify
is supposed to do):
f1 = Simplify[Expand[f[x]] /. Exp[a__] :> \[FormalE][a]];
terms = Table[f1[[2, n]], {n, 1, Length[f1[[2]]]}];
termSum = Total[Simplify@*Total /@ GatherBy[terms, Last]];
result = f1[[1]] termSum /. \[FormalE][a_] :> Exp[a]
which basically gives the same output as yours.
Addendum:
For still nice-ing it up one might modify your solution into:
Simplify /@ (Expand[f[x]] //. a_*Exp[c_] + b_*Exp[c_] :> (a + b)*Exp[c])