В свое время, когда понадобилось сделать rbac с ограничениями просмотра по ролям, гоняясь за универсальностью, отказался от понятия permissions и оставил только roles. В результате в мидлвале роута пишу что-то подобное `rbac:admin|manager&own`, что означает, что админ может видеть (и редактировать в случае update) все, а менеджер только принадлежащие ему сущности. Завел небольшую конвенцию, что в урле id будет называться с префиксом сущности, например `users/user_id` и в мидлваре проверяю, если встречается `own`, то есть ли у пользователя этот id в связи ->users(), если не нашлось, то в ->user(), иначе доступ запрещен. Здесь, конечно, предполагается преобразование этого самого user_id в users() и/или user() (что не всегда выглядит красиво в случае составных названий) и регулярный поход в базу и не сказать, что способ удобный, но избавляет от тонны permissions. :)
Ну замеров никаких, честно говоря не производилось, но ощутимых ухудшений не было замечено. В моем случае только море радости как у меня, так и у игроков. Избежать использования этого пакета не получилось, хоть и искал достаточно. Но инструмент мне очень понравился.
Лично я не записывал и не тыкал, просто выразил мнение. Но Растариане не дремлют :)
Ну, вроде как, Go все же возмутится за неиспользование переменной err на уровне сборки.
Я думаю тут большим аргументом выступит порог вхождения в эти языки. У первого он, я считаю, на порядок ниже.