Did you see the comment from @lsheng on HipChat yesterday?
I don't think it hurts to add distinctive error codes, especially for testing.
As a consumer of the CLI tool, all what matters to me is probably exit code = 0 or exit code ≠ 0, but that is no reason to not distinguish failures.
@lsheng Any comment on that?