Is this near to what you are looking for?
 
 ClearAll[f, g, h]
 
 f1[s__] := Total@Take[{s}, 3];
 
 f2[s__] := Times @@ Take[{s}, 2];
 
 f3[s__] := {s}[[1]] {s}[[3]] - {s}[[2]] {s}[[4]];
 
 expr = Through[(f + g + h)[##]] &
 
 w = expr /. {f -> f1, g -> f2, h -> f3};
 
 w[5, 6, 7, 8]
 
 
 (* 35 *)