Как избежать большого количества аргументов в функциях?
В идеале переделать.
Если переделать нет возможности - структуры будут однозначно лучше.
Еще есть вариант "функциональные опции" https://golang-blog.blogspot.com/2019/10/functiona...
Воспользуйтесь функциональными опциями с прописанными значениями по умолчанию
https://m.habr.com/ru/post/489296/

Либо заверните не обязательные поля в структуру и передавайте структуру как параметр функции.

Если есть возможность переделать функцию, чтобы она требовала меньше аргументов, то лучше так и сделать, например разбить на 2 функции, если одна зависит от другой и из за этого приходится прокидывать больше параметров, чем необходимо.