To say "he can speak English well, but doesn't understand it at all" does not make any sense, since "speaking English" implies an facility with the language. However you could say "he can speak in English well, but he can't understand it" is semantically acceptable, since speaking is different than understanding.
In everyday speech, they are often used with the same meaning. However, #1 really refers to habit/custom/everyday routine, while #2 refers to ability. eg
can speak Italian, but I do not speak Italian because I don't know any Italians or ,I can speak Italian, and I do speak Italian because I work in Italy.