Si la taille de d'une classe vide était zéro.. alors la classe n'existerait pas. Sa n'aurait pas de sens.
D'autant plus comment t'écrirais ça :
A tab[2]; si sizeof(A) == 0?
Par contre, dans le cas d'un héritage struct B : A; alors A n'augmente pas la taille de B. (chercher empty base class optimization).
@joel : j'ai jamais dis le contraire.