That's interesting because in British English I would always think of a jacket being lighter than a coat, like a warm weather coat. I suspect the Italian reasoning is similar, so cappotto would not translate as jacket, but I don't know. Now I think of it I guess we could use coat in all cases in BrE but not jacket. Like all jackets are coats but not all coats are jackets :D
KenHutley: I agree & would just add that in the US, jacket and coat are different articles of clothing. In part it has to do with their weight as Alex...Kinsey suggests. Sometimes in the US, modifiers are used, e.g. 'sport coat' which would be roughly synonymous with a 'sport jacket', with both terms used to distinguish this 'dressier' article from say a rain jacket or windbreaker. Similarly 'overcoat' or 'topcoat' is also in common use to distinguish the heavier article worn "over" or on 'top' of other clothing, including sport coats and sport jackets.
alex: the combined forms follow the same rules as the definite articles, so you'd say il ristorante, not lo ristorante and by the same token you'd say lo zaino, not il zaino. In other words nello would only be used for nouns beginning with those consonants that require you to use lo instead of il: z, s+consonant, etc.