Why I can not drop sudo root privileges?
Your programming language simply does not support such things.
It's complex to do this stuff on Linux, because of the architecture of Linux. The C libraries (e.g. GNU and musl) hide this complexity. It continues to be one of the known problems with threads on Linux.
The Go language does not replicate the mechanism of the C libraries. The current implementation of those functions is not a system call, and has not been since 2014.
Further reading
- Jonathan de Boyne Pollard (2010). The known problems with threads on Linux. Frequently Given Answers.
- Michał Derkacz (2011-01-21). syscall: Setuid/Setgid doesn't apply to all threads on Linux. Go bug #1435