This is one sided, there are many instances when people repeat the same process over and over again to get to get the same results. Improving something is not reinventing the wheel, building the exact same thing over and over again is.
So I guess writing a DNS resolving library wasn't justified, even though it dropped the memory footprint from 15M (when using C-Ares) to 400k (a bit more information about this here: http://news.ycombinator.com/item?id=2324428)
From the perspective of an individual, fixing a systemic flaw is going to take much longer than just operating within it. There are cases where "reinventing the wheel" is just the best way to go.