If your node is running for a few years now, re-syncing Core or --reindex-chainstate may produce a more "optimized" chainstate
but it wont be a significant change in size, maybe a reduction of 1GB at best.
Do you have personal experience or know documentation that --reindex-chainstate actually reduce chainstate size? After all, chainstate basically just LevelDB (key/value) database.
This of course goes beyond the actual purpose of a pruned node.
But it's technical limitation of pruned node, since you need all "spendable" UTXO to verify all new TX/block.
Why does the folder content of chainstate rise to this immense height?
1. Ordinals (mainly BRC-20 token).
2. Rising Bitcoin popularity.
What is the best way to proceed in such a case?
Allocate more storage. I don't expect Bitcoin Core will implement compressed chainstate feature.