Easy solution: put the ballistas throughout the city's residential areas (see Gaza). Daenerys can burn down the city because it's the only way to avoid getting her dragon killed. She becomes evil, but in a believable way. And you don't make ballistas obsolete in the space of an episode.