It's probably worth mentioning that optimisers are still allowed to perform TCE when they deem it possible/correct. (Including linking to [the relevant section of the LLVM docs](http://llvm.org/docs/CodeGenerator.html#sibling-call-optimization) as an example of what works with `rustc`?)