Hi Ahuy,
No matter how many function are present in the code and no matter the number of time that they are called the compiler transfers the parameters throught the registers [R0-R7]. Now when there is a call to some function within a function the compiler uses the stack to PUSH the parameters on to STACKand then load the registers with the current values and then POP the paramaters from the STACK after the call is returned. Thus placing a resrtriction on the number of calls within a function based on the STACK size. However you can increase the number of call depth by programming the register select field and increse the depth by 4 times. Well I think any program of a resonably fair complexity can be managed by this mechanism without loss in the modularity of the code. Hope I have answered your question
~Kalyan.