I pretty much avoid recursion when I write programs. I like to see iterative code as an explicit control structure. I've always thought that this was just a personal preference so I'm surprised to read that there are business cases that "require" recursion as a programming solution. Maybe a programming language requires it (such as those languages implementing functional programming), but a business case?