Any idea why this is happening? If I remove the contents of fontFamilies the font selection disappears, so there is no other source. I also tried to manually edit the generated theme.json in public/build/assets by changing the name. Then both font names reflect this change.
This does not work, as the fonts are then not registered at all so they are available in the editor.
In app/Providers/AssetsServiceProvider.php (line 69) you already rewrite theme_file_path so that every time WordPress looks up theme.json it reads the compiled file from public/build/assets/theme.json.
The block commented out (wp_theme_json_data_default at app/Providers/AssetsServiceProvider.php (line 81)) was telling WordPress to treat that same compiled file as the core “default” theme JSON. Then the load order became:
Replace WordPress’s own defaults with the theme’s data
Load the theme (which, because of the theme_file_path filter, is the same file again).
This wipes out the normal core defaults and forces the theme data to be merged twice.