It (this particular example, of function pointer syntax) is absolutely just incidental complexity, though. E.G. Haskell
(a -> b) -> c -> d
becomes C
D (*f(B (*)(A)))(C)
and it's no surprise that the former is considered much less fancy than the latter.
Of course it's not common — because the language makes it painful :) The causation is the other way around. We've seen in plenty of languages that if first-class functions are ergonomic to use then people use them all over the place.
Without curring and closures it certainly will be more painful!
I might write the equivalent signature,
and then reorganize things to just pass f around, or make a struct if you really want to bake in your first function.