Another example are simple alkoxides and alcohols. Take the simplest alcohol, methanol, #H_3COH#, versus its alkoxide salt, sodium methoxide, #H_3CO^(-)Na^(+)#.
Both are neutral molecules, but why do write the alkoxide with formal charge charge separation, with a negative charge on the oxygen, and a positive charge on the sodium.
Around sodium (#Z=11#) there are 10 electrons, so it bears a positive charge, but what about the oxygen? Oxygen has atomic number of 8; there are 2 inner core electrons. Around oxygen there are 3 lone pairs PLUS the oxygen atom has a share of 1 electron from the #C-O# bond. So the oxygen atom has 6 + 2 + 1 = 9 electrons. This is 1 negative charge in excess of the 8 positive charges in the oxygen nucleus. Oxygen (here) properly has a negative charge.