// ... If it is truly
// a recursion (using the same "receiver") we limit inlining otherwise we can easily blow the
// compiler stack.
So it would appear part of the reason for the limit is to protect the native stack of the JIT compiler (as per Rickard's comment).
Additionally, without any limit on inlining, the time taken to compile very deep trees could hold up the compiler queues and negatively affect performance.
Cheers,
Chris