Are there examples of recursion using only heap area?
In many implementations, arguments to a function call are stored on the stack. Information such as the address to return to may also be stored on the stack. Thus having a recursive function without using the stack may not be feasible.
Check your compiler documentation to see if a function can be called without using any room on the stack. If so, you are on your way.