- runtime.Goexit() has too much performance overhead, and should be used only under special conditions - introduce build tags
+ Switching debug.Stack() → runtime.Callers() saved ~900 ns and ~1 KB per error — the formatted string is gone, just raw program counters stored