Do catapults have range blocked by units in front? How about archers? It's weird that in one screenshot, I can't attack 2 spots away, but in the other I can.
Range is not restricted by units in front, but can be restricted by terrain. Usually its hills and forests that can in some cases reduce your range. Consider the following cases:
A C P H P
Thats an archer on a plain, 2 tiles from a city on a plain with a hill in between. In that case the archer can not hit the city because of the hill between them (ie a vertical obstacle)
A C H H P
In this case though the archer can hit the city though because even though there is a hill between them, the Archer is on a hill itself and doesn't to shoot over the hill between itself and the city.
A C H HF P
In this case though the archer again can not hit the city because there is a hill/forest combo tile between them. Even though the archer has elevation because it is on a hill, it can not shoot over the forest (which effectively has an elevation of 2, 1 from the hill and 1 from the forest).