For an application that is teetering on the Flash limit or is especially time critical, being able to trim and optimize library code can make a huge impact.
I've been thinking more about this lately... If an application is teetering on the flash limit or needing to shave a few instruction cycles, or optimizing library code, I suggest that it's time for that application writer to graduate from the IDE and move to a makefile. There, a whole universe of configuration options await. Arduino's brilliance is its simplicity.
On the other hand, now that I've been writing more libraries, I find plenty of times where it would be useful give a regular user some control over how the library is consumed. So to do this well, I would approach from the angle of, "How could the system let library designers give users of all experience levels the ability to configure their libraries?"
One idea is to allow a file named for the library in the current sketch directory, which is included at the top of each compilation unit in that library. For example, I like to tune the I2C buffer length used by the Wire library. So I might have...
#define BUFFER_LENGTH 66
#define TWI_BUFFER_LENGTH 66
And then Wire.h would look like this:
#define BUFFER_LENGTH 32
By using the code users are already used to writing, they don't have to learn a whole new syntax (command line options).
Alternately, the IDE could go the route of most IDE's and have a project file, in which configuration settings are saved, and then add UI screens to change them. The project file could be made optional.