I've some tables that'll never grow so I decided to replace a big index with one with a fillfactor of 100. That went well. The index shrunk to 280GB. I then did a vacuum full analyze on the table to get rid of any cruft (as the table will be static for a long time and then only deletes will happen) and the index exploded to 701GB. When it was created with fillfactor 90 (organically by filling the table) the index was 309GB.
I would've expected the index size to, at worst, remain constant rather than explode. Am I wrong or is this a bug?
PostgreSQL is v10.1. Original index created on v10.0.