There is a problem in that interpretation.
Yes.
void is defined in the C standard. There is no equivalent in Pascal, i.e, void is something that does not exist in Pascal. In Pascal there is no such thing as "nothing"/"void". Just in case, for the record and without pun intended, an empty record is _not_ what void is in C.
Yes, and very good, because it was Denis's idiotic idea. Wirth rightly assumed that if something does not exist, there is no need to write it down. Thanks to this approach, the code is understandable and clearer.
That's the reason C compilers complain about some operations on void*. A void* in C is _not_ a pointer to a byte. Whereas in Pascal a "pointer" is implicitly a pointer to a byte, which is why it is sensible to subtract two plain/untyped pointers in Pascal, while in C, it is a dubious operation due to the definition of "void".
Yes, but void* is not a pointer to nothing (emptiness). So what is a pointer that stores
nullptr (in Pascal:
nil)?
void* stores a real address (when it does not store nullptr), since it can be cast to a typed pointer. It is only unknown what object is located at this address. But it's not void. Otherwise, the cast wouldn't be possible (and it wouldn't make sense). It's simply a stupid way to represent the fact that it's a pointer to anything. Stupid because Denis used a previously defined word but with a slight modification (asterisk). And it caused confusion. People are reading "God knows what" into it. And this is just an idiotic notation.
Now, after all these years, it's hard to figure out what Denis really meant when he came up with "void*." Perhaps after many years Denis no longer wanted to comment on the genesis of his idiotic ideas. After all, he was a renowned computer scientist, so it's understandable that he didn't want to lose his "crown"

In any case, C has many such bizarre ideas, the origins of which have become mythologized over the years. Both the textbooks and the C language descriptions now resemble the Talmud (Catechism, or other interpretations): a collection of commentaries on commentaries, which in turn were commentaries on even older commentaries, which were on even older ones, and somewhere at the end, after many layers, were the original references to the Torah. Something that had been put together over years. Such a "multi-layered manipulation", where the original meaning has been completely blurred (or maybe even lost).
The only thing that is widely repeated nowadays is the myth that: "the creator of C was an exceptionally brilliant computer scientist and created an IT miracle." And if someone tries to analyze this from a technical perspective and, "God forbid," tries to point out flaws in the C language's design, they are considered an IT blasphemer. Because such time-honored dogmas cannot be questioned. Fortunately, this forum is rarely visited by "IT inquisitors"

I don't know what Delphi does but FPC has it right. You can increment or decrement an untyped pointer and, that's as it should be. OTH, that said, it would be clearer to cast the pointer to pbyte. That would make the programmer's intention clear instead of relying on compiler behavior that may not be obvious.
Yes.