Just to be clear: The command ‘gtags’ does find all files in my project. If previously scanned files (i.e. the database knows about them) change, ‘global -u’ happily picks up these changes. All fine.
However, when files get added, it looks like ‘global -u’ misses those. Presumably because it gets the list of files to scan from the existing database to save time. I haven't looked at the source code though.