inline is just a suggestion to the compiler and does not guarantee that the function will be inlined.
Obviously, the compiler cannot infinitely embed a recursive function. It may not be built into it at all, or it may take it several levels deep.
source share