Понял. Проблема не возникает, когда clangd сам может определить связь между заголовком и сурсом - обычно он с трудом определяет такие связи, если файлы лежат в разных папках, например include/main.hpp и src/main.cpp. Решается включением хидера в compile_commands.json. Где-то в одной из иссушек...