Porque dizes que te lembra um interactor? Apesar de tudo, ao ler a definição que apresentas abaixo, parece-me que são conceitos bastante diferentes. Os interactors quebram quase todas as regras que explicitas na definição:
- O resultado de um interactor pode depender, e depende muitas vezes, do estado do programa
- Provoca mudanças no estado de objectos mutáveis
- Podem causar IO, mesmo que indirectamente.

Parece-me que o conceito pode ser muito útil para encapsular lógica e computação, como disseste, mas para resolver uma parte da lógica de um use case em particular. Acho que só em casos muito específicos é que conseguiriamos ter um use case que fosse uma função pura.

Onde o conceito me parece encaixar na sua totalidade e na perfeição, é na tua AI do OBB. Para a mesma board, e as mesmas unidades, o conjunto de jogadas devolvidas pela AI é sempre o mesmo. Além disso, não é expectável que essa computação produza side-effects, mas sim que devolva uma nova estrutura de dados com as jogadas. Também não é expectável fazer IO nesse processo. Parece-me realmente adequado desenhar isso com funções puras.

Esta é a minha percepção do conceito. Posso estar enganado e gostava que falássemos sobre isso...