I've noticed that empty struct are always at least a size of 1, see D explorer. There you can see %example.S = type { [1 x i8] }
So te compiler inserts a dummy member so that that everything can work as usual.
Big question is what is the problem if we specify that empty struct is an error ?