Да, второй вариант. Я ищу механизм, который имеется в языке, какой-то стандарт, который бы позволял объединять ошибки, чтоб потом ими можно было манипулировать как захочешь. Хочешь, распечатай как строку, а хочешь как слайс из errors'ов...
Создается впечатление, что таковых конструкций нет. Конечно, можно возвращать слайс ошибок. Но мне эта идея не нравиться.
Или строки ошибок join'ить.