So, how about allowing to generate a custom tags file from the opened files and saving it in
There is no need to make a tags file for files that are opened, they are parsed as you type.
Geany searches your user config `/tags` for tag files to load, but they are in addition to system files, they do not overwrite them, and you can have many configs starting Geany with `-c configdir`. Never overwrite system files, they will get overwritten next upgrade of Geany, but you could rename one to stop it being loaded, just remember you will have to do it every upgrade.
See the scripts directory in this repository for the script that makes the Python system tags file (maybe after #3039), you might be able to re-purpose it for your needs.
To be clear the intention of the C++ heuristic is to sort symbols to present the most likely first, not to remove them from the list. And the "most likely" is definitely language specific, many languages like C++ have function overloading which languages like C and Python don't.