The second list of examples you gave does seem like the right sort of thing. I'm guessing the earlier commenter overlooked those because they're listed under the header "Summary," which kind of screams "skip me."
Hm, we certainly expect that this is possible. If this is too hard, we need some tuning!
For example, it's not like somebody's going to start TRPL, see "Let's make a guessing game," stop there and successfully make a guessing game — they don't know any Rust at that point! Similarly, IIRC we're not introduced to most of the IO functionality before the IO project, and so on.
Jake lists both kinds above; it's true that the project chapters are "follow along", but there are also suggestions for doing some extra stuff on your own.
Regardless, I think your overall point is correct: tons of projects is certainly not how we've structured the book. It is a thing some people want and would find useful. We'll see in the future.
The first few chapters actually mention and explain some of those gotchas (like ownership in regards to returning from functions or accepting a reference). The difficulty probably lies in not outright explaining everything, but not making the reader feel completely lost at the same time.
Then again, questions can always be added later on and if the basic reading material is good (which it is!), it's only going to make an already good source even better. I guess that's meant to say thanks for the Rust book.
Could you expand on bit on what you see as the difference between an "exercise" and the "projects" that the book includes?
- Guessing game: https://doc.rust-lang.org/stable/book/second-edition/ch02-00...
- I/O: https://doc.rust-lang.org/stable/book/second-edition/ch12-00...
- Web server: https://doc.rust-lang.org/stable/book/second-edition/ch20-00...
There's also some exercises scattered at the end of various chapters, but not with the header "exercise"
- Control flow: https://doc.rust-lang.org/stable/book/second-edition/ch03-05...
- Collections: https://doc.rust-lang.org/stable/book/second-edition/ch08-03...
Sometimes they are even inlined with the text:
> Try modifying Cacher to hold a hash map rather than a single value.
> try introducing more generic parameters to increase the flexibility of the Cacher functionality.
- https://doc.rust-lang.org/stable/book/second-edition/ch13-01...