That's how I get extra towers as well. You capture enemy city with it and then raze it. Game thinks you have -1 tower and set's it to 0 which allow you to build another.
Similar problem exists with building bonuses. If you raze a building that, say, increases your fame, you can build another one and get fame bonus again.
Game should add captured buildings to counter so that another adventures guild you captured would count as 2 adventures guilds and when you raze it, it would still have 1 in counter. Or it should simply check if you already have such unique building and raze the one you captured if it returns true.
Also, when you raze a building, game should subtract all its bonuses. If you raze cleric tower, you should lose 2 fame it gave as well.