Tail recursion is meant to fix the latter. But what we mean to happen and what actually happens ain't ever exactly similar.
Tail recursion IME is a bigger foot gun than relying on someone to add a new conditional branch at the end of a block in an iterative algorithm without fucking it up in the process. And iteration responds generally better to Extract Function. And while I can think of counter cases easily enough, in the large iteration is less work and less vigilance. And you cannot scale a project up without the vigilance requirement amortizing basically to 0 per line of code.
It's well worth being familiar with both - if you learn how to shoehorn both approaches where they aren't ideal, your judgement on avoiding such practices will improve. :)
> "The fact that Apple has imposed those centralised app distribution system for the purpose of protecting security, does not entail that there is not also a substantial anti-competitive purpose involved."
Hoping against all else that this forces Apple to build us a gate in the garden walls and allow other app stores. Platform control is market manipulation.