Есть мнение, что -fvisibility=hidden должно быть включено для всех исполняемых файлов. Во избежание экспорта приватных типов данных куда попало и последующей случайной линковкой с чем попало. Просто потому что имя случайно совпало.
> ну у нас неймспейсы во все поля, можно не боятся этого.
Мало ли. Плагины и приложения их запускающие не являются зависимостями друг от друга, они конечные, поэтому внутри их часто классы и функции именуют как попроще, рассчитывая только на отсутствие конфликтов с другими библиотеками.
А вот про размер бинарника интересно, сейчас попробую на своём коде.
По дефолту в ELF экспортятся символы всех входящих в бинарник функций, а этот флаг заставляет экспортится только то, что помечено атрибутом visibility=default