I don't think a policy is in error just because it simplifies for the end user.
Well, that's not all there is to it. And it's not a simplification when the user is lead to believe that (s)he has the choice to not return a value when the value does in fact have meaning. That's obfuscation.
May I ask whay your argument _for_ returning bogus values is?
You're making the assumption that a zero would not be bogus, which I don't agree with. I've already explained my argument: It's bogus whatever it is, so there's no use wasting effort making it a particular bogus value. The design flaw is deeper.
But as I said earlier, when it might have practical effect (side-effect object etc) then it could be good to clean up the return value.