Maybe for some context, my main issue at first was that the checks are all proper runtime checks with no ASSERTs at all, so I got confused how this situation could happen in a realistic scenario. I needed to trace the ParseStatus data flow to understand the idea is basically the same as in the PE library. Code in a way is self-documenting, and this personally gave me a hard time understanding why it is written this way. But thanks for clarifying your intention! :)
I assume you are ok with the ParseStatus. I will send new version based on mail discussion. Thanks!
I don't need to be okay with anything, I'm not a maintainer nor an authority. But I gave my opinion, which is that it is dead code that makes the design/flow harder to understand for a third party, at no obvious benefit.