Well, to begin with, Go passes function arguments in registers since 1.17
Go 1.17 implements a new way of passing function arguments and results using registers instead of the stack. Benchmarks for a representative set of Go packages and programs show performance improvements of about 5%, and a typical reduction in binary size of about 2%. (https://go.dev/doc/go1.17)
I think the basic problem here is that you don't know the facts.