Вот тут пишут:
https://cmake.org/cmake/help/v3.10/command/link_li...
что это повлияет только на цели созданные в текущем или ниже CMakeLists.
Подозреваю, что в link_libraries просто меняется переменная. А переменные в cmake ведут себя по умолчанию так как описано, т.е. изменения видны тут и ниже. Чтоб они были видны выше, нужны танцы с бубном, чего, видимо, нет в link_libraries
При этом цели созданные во вложенных CMakeLists прекрасно видны во всех других CMakeLists, не обязательно ниже по иерархии, но и в другой ветке то же.