I can tell what counts as a city too difficult to take when I try to take AI cities.
1. Rough terrain in the way. It really slows my units that can't use enemy roads, refreshment is difficult, and retreating damaged units a pain. Ranged doesn't work well here.
2. Nearby impassable features. Mountains, lakes, places where I can't deploy my artillery, where I can't use to widen the battlefront with fresh units.
3. Crossing rivers. I don't use Amphibious promotion too much, so crossing rivers to get to the city walls is bad for me. It slows and gives penalties to attack. A city on the other side of a river is safer.
4. Coastal city at the end of a sea tongue. You think you can use naval, but actually not too many boats are allowed into that sleeve of water.
5. Friendly cities nearby, good road network. Enemy reinforcements can come surprisingly fast when the city has other friendly cities nearby.
6. Euh, settling over hills in the early game, I guess.