J'étais tombé sur cet article, où le brainfuck est utilisé (l'intéret étant sa minimalité).
Je pense sincèrement que son utilité n'a jamais été d'être utilisé sur des machines avec très peu de mémoire. Il s'agit simplement d'un langage jouet qui peut être utilisé pour démontrer certains résultats, mais il a avant tout été conçu comme une blague.
Je ne pense pas que ce soit très pertinent de le définir comme un langage interprété. Rien n'empêche d'écrire un compilateur BF (c'est même très simple), et la page wikipédia montre même comment traduire littéralement du BF en C.
Quant à la mémoire d'une machine BF, utiliser un tableau pour la représenter n'est pas forcément adapté. Je pense qu'une liste serait mieux.
Si tu ne connais pas, tu as cette page qui explique BF de manière très concise, et qui peut te donner des idées d'exercices.
Enfin, étant donné que le langage en soit n'a pas vraiment d'intéret, pourquoi ne pas proposer au lecteur d'écrire son propre interpréteur / compilateur BF dans le langage de son choix à la fin du tuto ?