What are the functions in libc that you truly need and use?
How many of those routines are you incapable or unwilling to rewrite yourself?
I have asked myself these questions on many occasions.
The cruft laden operating system I use (which I imagine by many people's standards is "bare bones") is hopelessly dependent on "libc". But I find that the userland programs I truly need can be written using only a minimal subset of the many functions that are compiled into it.
Could I write any of these in assembly and create my own "libasm" to do the syscalls? This is a project I have contemplated many times.
To motivate myself to keep writing more assembly in the age of scripting language du jour madness, I write a small program in assembly language and then write the same program in C and then step through each compiled program (e.g., with ald). Seeing some of the overhead is an effective motivator.