The rule of thumb we were taught is that connaitre is generally used with nouns/pronouns while savoir is used with verbs.
'Je le connais par coeur' - connaitre is used as you've just replaced the noun with a pronoun (le). Je sais nager because nager is a verb.
I think the "to know something by heart" refers to the fact that savoir is used with things you know almost instinctively (like how to walk or read, ie verbs) rather than refering to a literal translation of the phrase.
Yes, I think that's it Pangur...
Please note that any unsolicited advertising will be removed