I would like to make the argument that for a group of people the interest to program something isn’t motivated by the practical considerations. Starting out a project as a learning exercise or design experiment doesn’t imply you end up with a toy implementation. In other cases, it may just so happen that you don’t agree with some major design decisions of an established framework and are curious if you could pull it off differently.
The second reason why starting fresh is very appealing is because it makes a big difference in quality of life.
My personal experience over the past years has been that often I find some existing package related to my current interests where I would like to tweak or try a couple of things. Now of course in general these tweaks are not always a good idea, because often enough when you start out you lack the insight to judge specific design decisions that were made. But one has to start somewhere. So you start working on the code and create a PR and realize no one is responding. Add to that that for existing package one has to focus on small incremental changes that are easy to review, because people are busy and feedback can be sparse and slow. As a consequence you always feel like an intruder that has to inconvenience people.
With the major exception of the fantastic Images ecosystem (where Tim Holy regularly makes a big effort to provide hints an guidance), it turned out to be massively more fun, convenient, educating, and productive to just start from scratch and see for yourself what works and what doesn’t.