I’ve got a concrete example. As you suspect, it is about the parser. I wanted to teach Inform 7 to be able to add new sets of pronouns, in particular modern singular they. (I’ll be posting in Non-binary Pronoun Discussion when I have significant updates; the current version is usable but under-documented.)
Inform 6 was critical to allowing the parser to (sufficiently efficiently) read new pronoun words as referring to the objects they’d been attached to. For example, if you define a new xe-xem pronoun, and then define a character to accept she-her and xe-xem, my extension needs to update parser state so that both “her” and “xem” become bound to than character when xe is mentioned. Without the extension, the word “xem” doesn’t even exist for the parser, and the format of words that it is willing to parse (under certain constraints) is only representable in I6 code (“Dictionary words” are enclosed in single quotes, which I7 does not accept as source code.).
But I wouldn’t actually recommend starting with I6; it is a much more “traditional” programming language than I7, but it’s also and old and rather grungy language by modern standards, being more like a high level machine language. It’s substantially less type-safe than even K&R-era C, and it’s memory management (as of runtime accessible to I6) is extremely impoverished, unless you’re also learning to use I7’s rather complex (and still only modestly type-safe) memory management library. (Admittedly, I’ve not gone and learnt this layer myself, so maybe it’s less arcane that I suspect.) Learning I7 may bend your brain a bit more than starting with I6, but it would be a rather more fruitful exercise; getting anything done with I6 is more work than in I7, and the Inform system actually provides fewer features accessible via I6 than via I7.