How do you convince every other library that you might sandwich on your call stack to use your error library so your error data gets passed through correctly?
The other library doesn't have to use your error library, it just needs to preserve your error when passing through. To make this a common practise, this proposal was made.