Nice and useful in concept.
Extending this; what happens when we wrap errors (https://blog.golang.org/go1.13-errors) and bubble them.
Often where an error surfaces isn't the cause. However usage of runtime.Caller for the full stack can have a cost associated also.
Dont know what the best answer is, but sure would like the trace to contain the locations of all root errors.
Java & C# default idea of exception. By default an exception gives you that out of the box.
In go lang the thinking is that panics are unhandled and hence reveal the trace, errors are handled and hence left to the user.