The author clearly does not weigh in on the "whys" some things work in Go like they do.
So, adding an extra struct field results in the base value, and by design this should be used as a base default. The go proverb make base values useful goes hand in hand.
Obviously functions are not the same. And calling function with the wrong args is a compile time error. There is also CI check that check for this use case.
Overall this seems like a comparison to Rust, and its obvious they are not same same. Apples to Oranges.