Hi Kevin, thanks for this - it's indeed a very very good point (i wasn't brave enough to question the accuracy of pseudo code of such iconic RFC in my article), the RFC 1320 is intended to provide explanation (+ pseudo code) on the RFC 1115 (4.2.2) but already in that doc the calculation of the checksum is as below:
md->L = (md->C[i] ^= S[0xFF & (c ^ md->L)]);
Which makes sense as the pcode means scraping previous values of the checksum through the iteration which doesn't make sense (we could just process the last 17 bytes...).
We could question the clarity of the pseudo code of the RFC 1320 - it's my best explanation if anyone as a better one happy to hear...