Tracing requires keeping mappings for tracing identifiers per request. I don't know you do that without global state unless you want the tracing identifiers to pollute your own internal apis everywhere.
I think Go was smart to make this concept part of the standard library, as it encouraged frameworks to adopt it as well.