Decrease the “go-for-it” threshold for unfolding smallish expressions. Give a -funfolding-use-threshold0 option for the extreme case. (“Only unfoldings with zero cost should proceed.”) Warning: except in certain specialiised cases (like Happy parsers) this is likely to actually increase the size of your program, because unfolding generally enables extra simplifying optimisations to be performed.
Avoid Read.
Use strip on your executables.