I'm curious as to what your thoughts are on the difference between these two things. Rolling from scratch seems like more work, but sometimes gathering enough knowledge and understanding about someone else's project to be able to make a change to it is even more work.
If you have little commits that just change some config settings in your fork of a common jQuery library, that's not a big deal.
If you have little commits that change some deep magic in sizzler, okay, that's something we should talk about.
If you rewrite a software rasterizer, just for funsies, that's something to talk about.
If you write yet another web framework in Ruby, or lightbox plugin for jQuery, I'm going to call you out on wasting time.
If you can explain why your implementation of half of the functionality of Rails is desirable, and satisfy me that you're doing it for engineering/business/safety reasons, I'll be really impressed. If you admit it was for the lulz or to learn or because you didn't know any better, I'll admire you for your honesty. If you did it because async is srs bsns guise also activerecord more liek activerecrud amirite, I probably will let somebody else have the joy of breaking in a cowboy coder.
It can be very, very hard to commit work to other people's projects--I skipped even the modest task of putting out a Visual Studios make system for somebody's Minecraft clone, for example, because I just didn't want to have the "Cmake? Fuck cmake!" argument.