Originally there was only one struct that didn't have an offset member. I submitted a patch that added offset and made various code changes to ensure its use so warnings/error messages could correctly calculate the line number.
Although I didn't like that "offset" was left out of the public-facing API, there was a legitimate need: it would've forced a backward incompatibility when shared libraries or windows DLLs using the old API were used.
To account for this it was proposed that a 2nd "internal" type be made that has offset, while the public API version of the type remained the same.
-brian