One of the major issues introduced by tile limits is that players are heavily incentivized to play tetris to avoid bringing resources into direct connection with their cities. Not only is this heavily counter-intuitive (why does having local resources mean I can build fewer buildings?) and encourage all sorts of exploits, but the benefits for defence don't come close to outweighing the costs in tiles. I'd honestly suggest not having connected resources count towards the tile limit, but I have an additional suggestion (that wouldn't exclude also making resources free in tile costs): adjacency bonuses for resources (and large buildings).
The basic idea would be that each building has a set of types depending on it's overall function (research building? arcane knowledge producer? marketplace-type? housing? etc.), and that certain resources would add benefits to adjacent buildings of certain types. Imagine an ore mine producing a little extra for an adjacent blacksmith, or a library producing a little extra for adjacent schools, or a refugee camp adding +1 to the production of every adjacent structure. The resources would do that much more to shape not just a city's numerical make-up, but it's geographical consistency. You have this fantastic spatial city development system - make it matter! I'd also recommend that big buildings, particularly the 1/faction and 1/world "wonder" buildings, also provide appropriate adjacency bonuses. It's intuitive, easy to keep track of as a player, and would increase the depth and balance of city development substantially!