Cofree in general I use all the time, especially in compilers. The Generic and Binary Cofree instances were lifted straight out of a decompiler I'm supposed to be working on. The most common reason is to get Traversable and Plated instances:
https://hackage.haskell.org/package/lens-4.15.4/docs/Control...
For the blockchain stuff specifically, I suppose I didn't really use them too heavily in this article. So you could argue they aren't currently doing a whole lot of good.
I'm not actually certain if people prefer seeing the heavier types that I default to in real code(to avoid refactoring later), vs. types that are as simple as needed but might need to change as the program evolves. The first choice lets people who already know Haskell learn something from it, while the second makes beginners less confused.