To address your query about libraries making sketch code too big...
I have recently completed (or rather, am in the process of completing) my first library, SevenSegmentSL1255. I too was concerned about the growing size of the library, as I incorporated more and more ideas. So I decided to plan for a "Lite" version, SevenSegSL1255Lite, so that the casual user would not feel to overwhelmed and also to reduce the memory footprint, for simple sketches.
However, after reading the Arduino page on the build process, I discovered that the whole library is not necessarily included in all sketches:
The .c and .cpp files of the target are compiled and output with .o
extensions to this directory, as is the main sketch file and any other
.c or .cpp files in the sketch and any .c or .cpp files in any
libraries which are #included in the sketch.
These .o files are then linked together into a static library and the
main sketch file is linked against this library. Only the parts of
the library needed for your sketch are included in the final .hex
file, reducing the size of most sketches.
So you see, from a memory footprint point of view, no matter how big the library may be, the resultant compiled sketch can still be quite small, depending on the amount of the library that is called for the sketch. From my point of view, this makes the "Lite" version of my library now somewhat redundant. Although, the argument for a simpler, more user friendly library may still exist.
As an aside, the resources that I used in creating the library are listed below: