1. Yes, solving these puzzles would mean often mean using a library.
2. However, for most of the things I listed above, in most languages, a competent software developer should be able to, and most likely would just use the standard library.
3. Why not both? I can imagine a catalog with thousands of problem sets. Some may challenge you to (re-)implement some existing functionality yourself (as a super basic example, re-implement the java Optional::flatMap method or something). Others could challenge you to make use of existing implementations. Learning to make use of stdlib and other libraries and tools in the ecosystem is part of one's growth, and also so is working through those tools, tinkering, trying to think how you would have implemented them, and getting a better understanding of their internals (or at least, an understanding of how their internals MIGHT work)
Or is that your point? That coding like a pro means gluing those things together?