...
No, creating the IndexWriter with "true" should remove all old files in the old index (actually with Lucene < 1.9 it removes all files in the index directory, no matter if they belong to Lucene).
When I uprade Lucene, for example from 8.8.2 to 9.0.0, do I have to reindex?
No, you can add a version specific lucene-backward-codecs library (for example lucene-backward-codecs-9.0.0.jar) and Lucene will be able to use the index of a previous version.
Nevertheless, certain changes will require to reindex, also see https://solr.apache.org/guide/8_0/reindexing.html
How can I index and search digits and other non-alphabetic characters?
...