Yeah, I see this pattern a lot in cgo code and I assumed it might be a performance optimization. But I agree that it's way simpler for the struct to contain a pointer and that would outweigh almost any perf gains, especially since people aren't likely to care too much about perf in this lib.