It is possible to use patterns in assumptions such as f[_]>0. This does not seem to be explained in the documentation but is for instance pointed out in Is it possible to add some pattern to $Assumptions.
However, when trying to use this it seems to be very unreliable (perhaps that is why it is undocumented). For example if I want to simplify
expr=f[a]^(p1 + p2) f[b]^(p1 - p2) f[c]^(p1 + p2) d^(p1 - p2)
one finds that
Simplify[expr, {Element[f[___], Reals], f[__] > 0,
c > 0, d > 0, p1 > 0, p2 > 0}]
does not combine f[a] and f[c] into one power while
Simplify[expr /. f[x_] :> x, {a > 0, b > 0, c > 0, d > 0, p1 > 0,
p2 > 0}]
does the job nicely. The only difference is that we changed the name of the variable f[x]->x and that we wrote out the assumptions explicitly. How do we get this to work for an assumption with a pattern for f[__]. It was pointed out in the linked question that perhaps the difference was due to Mathematica being more conservative in its assumptions on variables that aren't simple Symbols and that therefore the assumption Element[f[___], Reals] needs to be explicitly added. However we see here that doing this does not solve things.
I know that for such a simple expression I could easily write a replacement rule that does the simplification that I want to do. My point is that Simplify already knows how to do many useful simplifications and I don't want to have to write them all by hand for every simplification that I need. The point of Simplify is that you can use it on big expressions where you don't know what the exact simplifications you want to do are. I would like the power of Simplify but for expressions of the form f[uniqueLabel] where it knows f[uniqueLabel]>0.