If my understanding of the matter is right yes. I'd like you to understand it too in order to verify my understanding.

Please have a look at
[boards/native/Makefile.include:1](https://github.com/LudwigOrtmann/RIOT/blob/2cd3f04fc6c391f1c137a9bd2236eea88dc22453/boards/native/Makefile.include#L1)
and for example
[boards/native/drivers/Makefile:9](https://github.com/LudwigOrtmann/RIOT/blob/2cd3f04fc6c391f1c137a9bd2236eea88dc22453/boards/native/drivers/Makefile#L9)

When e.g. [boards/native/drivers/native-uart0.c:81](https://github.com/LudwigOrtmann/RIOT/blob/2cd3f04fc6c391f1c137a9bd2236eea88dc22453/boards/native/drivers/native-uart0.c#L81) is translated, `struct sockaddr` is taken from the system includes as there is no `sys/socket.h` in either `$(RIOTBASE)/core/include` or `$(RIOTBASE)/drivers/include`.

If however `$(CFLAGS)` contains the RIOT includes and an application uses `pnet` (and therefore adds `-isystem $(RIOTBASE)/sys/posix/pnet/include` to the search path), `$(RIOTBASE)/sys/posix/pnet/include/sys/socket.h` will be preferred over the regular system header file. This is needed for the actual application and for the RIOT `pnet` implementation, but results in conflicts for native.