I think you're just reading too much into the problem. The terminology can be a bit daunting and it can be very hard for bioinformatics people to realize just how much specialist terminology we end up using. I mean, we have both computer science and molecular biology jargon that we use every day. It's sometimes hard to recognize just how much assumed knowledge there is in this field.
Unfortunately, bioinformatics is full of edge cases like this.
In this example, if you're talking about the size of a full protein, you need to add the mass of a water (to account for the lack of a bond at the N and C terminus). However, if you're talking about the size of a peptide fragment (a sub-sequence), then you don't need to account for the extra water molecule [0]. And as the explanation says -- peptide identification is the most common use-case for this analysis, so we'll just use that. This is also why the table lists the "residue" weights -- because it's easier to calculate the `sum(residue_weight) + water` as opposed to `sum(amino_acid_weight) - (n-1) * water`.
I think the extra explanation isn't entirely clear, but I wouldn't get hung up on that part or let that bother you too much. The problem really boils down to: calculate a weighted sum of a string using these weights for the letters. That's it... no more, no less.
Congrats on working through the exercise. This is honestly great resource for learning about the field from a coding perspective. As others have mentioned, this is from the people who literally wrote the book about much of the field.
[0] Note: In the protein, you aren't actually adding an intact water molecule itself, but accounting for the extra H at one end, and an extra OH at the other end. Which is the same weight as HOH, or 18.01056 Da.