OK, I think I've figured out the deal...
Here is a quote from
http://www.roguewave.com/support/docs/sourcepro/threadspl/6-1.html (I've bolded the pertinent part that seems to explain why we both recursed a different number of times on our systems)
"Following allocation, the operating system will grow the stack as needed by committing one-page blocks (4K on an x86 machine) out of the reserved stack memory. Once all of the reserved memory has been committed, the system will attempt to continue to grow the stack into the memory adjacent to the memory reserved for the stack.
Once the stack grows to the point where there is no free memory adjacent to the stack (and this may happen as soon as the initial reserve has been committed), the stack cannot grow any farther. At this point, further stack growth will produce exceptions, error, or other unpredictable behavior. To avoid this situation, you should take care to specify a sufficient amount of reserved memory space for your stacks when you link your program.">AFAIK, it's some kind of C stack limit.
>
>>I stand corrected. I just put a config.fpw with STACKSIZE=64000 in my startup folder, and while it did greatly increase the number of levels I could traverse, it bombed at 906 for the following...
>>
>>
pnCounter = 0
>>=mytest()
>>
>>FUNCTION MyTest()
>> pnCounter = pnCounter + 1
>> ?pnCounter
>> =mytest()
>>ENDFUNC
>>