What are the guidelines/tips for calculating the complexity of a chained-recursive function?
I cant think of one simply way to solve such questions, but I can show you a way to start tackling the questions and making them simpler.
In such cases, that $f$ recursively calls itself with their own return value, the running time of $f$ might depend heavily on its output. So contrary to usual complexity computation tricks, here we want to know precisely what the output of $f$ is. For example, we can prove by induction that f1 will always output 1.
Now, replace each inner recursive call to $f$ with the value it returns. In the f1 case, we replace f1(f1(n/2) + f1(n/3) - f1(n/5)) by f1(1+1-1) which is simplified to f1(1). This means that we did a total of 4 calls to $f$, and for each call to $f$ we know exactly what the input was. Here, in this example, the inputs are $n/2,n/3,n/5,1$.
Finally, we can start calculating the time complexity: since we know how many recursive calls happened and what input was there for each recursive call, we can build a recursive formula for the time complexity. In the case of f1, it will be: $T(n)=T(n/2)+T(n/3)+T(n/5)+T(1)+c$, since we add a recursive call with the input of f1 for each time f1 was invoked.
This can be solved using traditional techniques, such as the master theorem.