This is an old revision of the document!
There is nothing special about recursion in general in DCI, it can be done where it's deemed useful. It's important to remember however, that Roles cannot be rebound during a System operation and its following Interaction.
If you do a recursion on a whole System operation though, it's common that you want to rebind Roles at the recursion point. There are a few ways of doing that:
The choice is implementation- and convention-based. If you bind Roles only in the constructor, the first option could be more convenient.