Would the sync.Pool trick mentionned here: https://hypermode.com/blog/introducing-ristretto-high-perf-g... help ?
It’s lossy but might be a good compromise.
1. https://puzpuzpuz.dev/thread-local-state-in-go-huh
2. https://victoriametrics.com/blog/go-sync-pool/
It's probably too complex for the Otel SDK, but I might give it a spin in my experimental tracing repo.