As discussed today, zero-sized struct behave really like zero-sized object, that is,
you can get a pointer to them (although all those pointer could be equal), but when
when passing them by value, the receiver won't take any value (because there is none)
so there really isn't any differences between a nil pointer to a zero-sized object and
any other pointer to the same kind of object.
or put it another way, what do you expect from dereferencing a pointer to a zero-sized
object? (you can't even access the bit located at that address because 1 bit is bigger
than 0, so this will be effectively accessing an out-of-bound pointer)