A system allowing certain units to return fire when hit with ranged attacks would actually clear up a lot of the game's combat problems. Off the top of my head, it would: penalize ranged units the same as melee when attacking cities (siege could get a special promotion to take less or no damage when attacking cities), better represent the supremacy of guns vs. bows (gunpowder units would be able to return fire against archery attacks), and make naval combat more realistic without sacrificing the nuance of positioning (or making coastal cities with only one adjacent water hex nearly invulnerable to naval attack). You could even leave naval melee attacks in for some ships (triremes, ironclads) that historically used ramming as a primary weapon.