I see that my Gmail app is consuming a lot of disk space because it retains many old emails. Is there any way to reduce the amount of space it consumes without clearing all of the app's data?
In Gmail's menu open Settings, tap an e-mail account, and decrease the "Days of mail to sync" setting. You can also hit "Manage labels" there to stop syncing certain labels altogether if desired. Repeat for every account. Afterward, I would try manually syncing each account (pull down the message list), clearing the cache, and syncing again.
If that doesn't decrease the amount of data used then you can do some manual cleanup if you have root by removing the
/data/data/com.google.android.gm/databases/mailstore.<address>.* files, which will remove all of your synced email and some settings. Most preferences will be left intact however, so it's better than completely clearing the data.