really? what compiler are you using? i got it very quickly when i ran your commit.
If you dial GCC or Clang up to -O3, you should be pretty much guaranteed to get tail call optimisation.
I think /O2 in Visual Studio will enable the same, but I don't have a Windows box around to test on.