charge seperation occurs because one of the bond in the C=O is actually a dative bond, whereby oxygen donated an electron pair to form a covalent bond between carbon and oxygen. Since oxygen "looses" its electron, it gains a positive charge and since carbon "gains" an additional electron pair, it gains a negative charge. The overall charge is zero.