Yes I programmatically update projects via the API via PUT https://api.inaturalist.org/v1/projects/<id>. I have found you can set around 1000 taxa in one request before you get 500 errors, so you can put thousands into one project, but after you have around 1000 in one project, you break the edit page.
So I think I see the problem with my feature request, this request returns the project taxa with observations that I personally have no observations for. https://api.inaturalist.org/v1/observations/species_counts?unobserved_by_user_id=1030414&project_id=163590&locale=en&per_page=1
But that is different from the project taxa with or without observations that I personally have no observations for, so maybe its not as easy to add as I thought. The API endpoint I am envisioning would be something like the above but ?project_id=123&include_zero_observation_taxa=true&unobserved_by_user_id=any
I have found projects with large included taxa lists to be very powerful, and updating them via API lets me keep them in sync with third party data sources. It makes sense to add small features to projects to make them more functional rather than wait for a big rewrite of Lists.