So you're arguing that a function has to be pure to be "honest"? It seems a bit arbitrary. Why not the other way around?
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 :)