I've been further fiddling with the program I talked about HERE.
This time I took a critical look at a bunch of C preprocessor macros I wrote back in the early 1990's. The problem with macros of course is that they get expanded into something. That "something" winds up getting slathered throughout the code and if not carefully considered can result in substantial code bloat. In this case I wrote about 10 new lines of code, twiddled the macros a bit and saw the size of the test suite plunge by about 4K. That's a pretty tidy reduction for a whole 10 LOC worth of new code.
It takes a pretty smart compiler to factor all the replicated junk out and pull it into an internally generated function -- and even then its only going to happen if you've chosen some aggressive space optimization options. Many compilers aren't all that aggressive about space optimizations to begin with because compiler reviewers and benchmarks focus mainly on speed rather than generated code size and often think they're smarter than YOU the programmer are and do things behind your back to actively subvert you if you do happen to want smaller rather than faster code.