Backstory: When I learned about chemical reactions, there were two types of molecular bonds: Ionic, where an atom or compound molecule with a low valence number loses those valence electron(s) to one or more other compounds with a high valence number, which it then bonds with; and Covalent, where valence electrons are "shared" between two or more atoms that don't want to actually "give up" their electrons to the other atom.
At first, that worked. But then, as I casually poked around Wikipedia and other sites looking to further my knowledge, I found evidence refuting this clear division. For instance, the explanation of pH on Wikipedia states that pure liquid water, a substance which is a textbook example of covalent atomic bonds, isn't actually covalent, but an equal mixture of hydronium (H3O+) and hydroxide (OH-) ions. The explanation is that liquid water, as a polar solvent, actually dissolves itself, and hydrogen ions (naked protons) travel relatively freely among atoms of water in its liquid and even gaseous states, forming hydronium where the hydrogen atom is gained, and hydroxide where it's lost.
Another example; benzene. It's composed of 6 carbons and 6 hydrogens. Carbon wants to get four electrons to fill its outer valence shell. The hydrogen fills one, ostensibly by sharing. It gets the other three by sharing electrons with its two neighbors. Now, three electrons don't divide by two; classically, we're taught that the double and single bonds alternate, but really, the behavior of this construct indicates that the last valence electron of each carbon atom is itself shared between its two neighbors, giving each carbon "one and a half" bonds with either of its neighbors. That sounds like "sharing", but not in the way normally described.
Now, there are other pretty concrete examples of covalence; diatomic gas molecules like O2 and N2 each have a mostly-full valence shell and just want a couple more valence electrons, and so in their diatomic bonds each atom "pulls" the other's valence electrons into its own valence shell without losing its own. But, "highly covalent" bonds like this seem to be more an exception to the rule than a rule unto itself.
So, maybe from a deeper level, I'm asking: where is the "dividing line" between bonds called "ionic" and bonds called "covalent"? Is there a primary property of the bond or the resulting substance that can be given as evidence to say definitively "this is a(n) ______ bond? Or is there indeed some "grey area" where the behavior of electrons between atoms could be described both ways at the same time?