> In terms of just index bloat, does a regular vacuum help?
You might want to use the REINDEX command to correct serious index bloat. A regular vacuum will make dead space available for re-use, but won't eliminate bloat directly. (If run regularly, it will prevent bloat.)
for that reason, it makes sense to actually partition your data - even tho you don't see performance degradation because of data size, but purely because of nature of data. Other way, is to perform regular cluster && reindex - but this blocks relations you are clustering..