Да, такая конфигурация возможна.
Отвечая на ваш вопрос о том, как система знает, как использовать символы, помните, что все ссылки происходят во время сборки. После того, как он создан, речь идет не о «символах», а о вызовах различных функций по разным адресам.
При сборке libB.so он устанавливает ссылки на libA.1.0.so. Он не знает и не заботится о том, что будут делать другие приложения, которые он использует, он просто знает, как отобразить свои собственные вызовы функций.
При создании самого приложения оно ссылается на libB.so. Что бы ни вызывало libB.so, оно совершенно неизвестно приложению. Приложение также статически ссылается на библиотеку, которая не заботится о libB.so.
Одно замечание: если libA использует статические переменные, для libB.so будет один набор статик и другой, независимый набор статик, доступных для приложения.