Я бы не сказал, что регулярное выражение стоит дорого, и его следует избегать, если это возможно. Это лучший инструмент для вашего случая. Хотя нет ничего плохого в использовании пакета Unicode для проверки пароля, другим программистам было бы удобнее читать только одно регулярное выражение, где вы можете записать все свои требования к паролю в одном регулярном выражении.
Эффективность объявления регулярного выражения:
Вы можете прочитать о производительности реализации golang regex здесь . Мне было бы все равно, если бы вы не внедрили очень важный инструмент с высокой производительностью, где вы могли бы особенно измерить, что регулярное выражение замедляет вашу программу.