If I understand correctly, it’s not uncommon for CMake projects to consist of several subprojects that could use different relevant args or hypothetically even different compilers (i.e. target binaries vs. tools built for the host system to be used by the build).
There is also the need for C vs. C++ information, as compiler queries for either may result in different system include paths.
Processing N sets of compiler paths/args here would be similar to what cpptools does with compile_commands.json files - processes all provided compiler paths and (unique and relevant combinations of) args, to build the browse path(s). Cpptools should be able to avoid redundantly querying compilers, so it should not be critical that the configuration provider de-dupe this set.