Author here. My intention was to try to define "honest" in terms of already established terms. Pure and total have quite specific definitions in programming, so it doesn’t feel right to define pure in terms of honest.
A better way to put it might be that a pure and total function will also be honest, but a function might be honest without being fully pure. E.g. if its name indicates that it performs IO, it’s still honest even though it’s not pure.
Thanks for the comment, I might end up clarifying this later tonight :)