Shaydwyrm wrote:We are moving into my own speculation now, but I think でも is probably a contraction of それでも or some similar phrase, meaning "even if that is the case".
No. It comes from the te-form of a verb/adjective + も construct.
[verb/adj in te-form]+も = "even if [verb/adj]"
で is the te-form of the copula, so that's where でも comes from. The following means the same thing as your example sentence, just using the ても construct with the adjective rather than でも:
犬が嫌いだ。小さくても嫌いだ。
それでも is just an expression that uses the ても construct. でも is not short for それでも. Their meanings aren't quite the same either. でも when used by itself is more of a straightforward "but, however" and it doesn't really have the same "even though" nuance to it that the 〜ても construct does. For this reason, I like to consider でも a separate construct on it's own for convenience. それでも has the nuance of "even if that's true, nevertheless."
Shaydwyrm wrote:In short, the fundamental difference between けど and でも is that でも is a contracted grammatical construction, whereas けど is a proper word on its own.
In addition to the でも part, the けど part isn't quite right either. けど is a contraction of けれども.
For all intents and purposes, でも, けれども/けれど/けど, しかし, and が are mean a simple and straightforward "but, however." The difference is in how they're used. でも and しかし can only be used at the beginning of a sentence as a kind of segue into the sentence. けれども/けれど/けど and が can both be used at the beginning as a segue and at the end of the first sentence to connect 2 sentences together. When they come at the beginning sometimes the copula gets added to them (だが, だけど, ですが, ですけど). They can also be used at the end of a sentence to omit info and/or soften the sentence. You can't do that with でも and しかし. I get the sense that でも and しかし have a stronger sense of opposition, but that could just be me.