For example we're using validation methods to verify customer address. Since this is a paid 3rd party service used by our client, if client missed paying for the service, data validation would fail and it's not nice to show a message to user with this reason though. In such scenario, If client comes back to us asking why it's failing, in order to get this without editing code, I hope this is a good way of doing it.
Setting just system.debug won't help you much since in orgs where your package is installed might have lot of other codes that might lead to logs truncation and your debug statements getting lost.
The better solutions are:
Use a custom object to log all these errors that you can query and report on .
If you are worried about storage limits then prefer setting an outbound emails on failure so that this is identified