I'll start off by saying that I agree with you in that when it comes to small teams, microservices is probably not the best option, as it adds additional unnecessary complexity.
But one of the best benefits I saw of microservices was that it allows small teams to work together mostly independently. It meant that each group could run in whatever way was best for the four of five folks in the group.
If the auth group really thought Go was the best solution for their problem, then they could do that. If the API team wanted to do a deployment every two weeks on Wednesday, they could do that. If the tools team wanted to deploy on every checkin, they could do that.
It meant that the 1000 engineers didn't have to all agree on a particular language, development method, or development cadence. Each team could do whatever worked best for that team, and was most in control of their own success or failure.
All you do, as a team of 5, is write nice modular composable well tested code. That way your code base will adapt as you grow. It's quite likely going from 5 to 1000 people is going to involve a number of large architectural shifts during the life of the product.
Different communication coordination patterns and levels of complexity.
Look at specifics to determine appropriate solutions (which will still have particular benefits and drawbacks).
I agree with this, but there's another very important driver for microservices - the presence of multiple customers, each with different ideas as to what makes up the right stack - i.e. SaaS.
In our domain (HR software) microservices make good sense because they allow each customer to compose their own stack, with individual bits coming from us or from third party vendors.
Without this need, I don't think I'd recommend most normal scale companies (Netflix et al excluded obviously) go microservices.
To me, the main benefit of the polyglot SOA paradigm is: we simply just can't find enough talent located in y skilled in x.
Most services complain of complexity from "the monolith" but upon further inspection, what we're usually see is poor architectural layout. These teams feel that microservices solve this, but really just make the entire backend more complicated.
The same can usually be achieved through enforcement of an API contract and good leadership rather then TLS handshakes.