Скажите, что у Вас есть 2 библиотеки доли, lib1.so и lib2.so, это у обоих есть libcommon.a, статически связанный в них. Компилятор жаловался бы на неоднозначную ссылку символа, если бы необходимо было динамично связать и lib1.so и lib2.so? Или был бы компилятор быть достаточно умным, чтобы знать, что libcommon символы совместно используются lib1 и lib2 и позволяют Вам динамично связываться против обоих?
Статическая библиотека будет использоваться для разрешения внутренних ссылок, но внешние ссылки не будут распространяться на интерфейс разделяемой библиотеки, так что не будет никакого конфликта. Каждая разделяемая библиотека будет включать свою собственную копию кода статической библиотеки.
Конфликта не будет, потому что при компоновке с разделяемыми библиотеками компоновщик будет использовать определение из первой разделяемой библиотеки, которая предоставляет символ, и не будет дальше смотреть на другие разделяемые библиотеки. Символы, включенные из .a, будут экспортированы в обе разделяемые библиотеки, но не будут конфликтовать.