Вы правы. Грамматически и орфографически правильным будет название защита Каро – Канна (ср.: защита Алехина, защита Боголюбова, закон Бойля – Мариотта). Однако название с фамилией в им. падеже настолько устоялось в профессиональной среде, что менять его сейчас кажется нецелесообразным.
Оба варианта верны (как по отношению к французскому, так и по отношению к итальянскому городу).