I was thinking on the possible reason why sieges are currently broken and my best guess is that Toady didn't want siegers to act as psychic entities like in the pre-z version where they could hunt down dwarves into the deepest crevices of any fort (due to them using the same pathfinding code as dwarves I presume).
So, I was thinking that a quick but not completely functional way to fix sieges without giving siegers too much knowledge about fortresses is to give them the same pathfinding code of caravans and let them at least reach for the trade depot. Since I presume that, in-game, caravans know the location of the trade depot because dwarves advertise this info to them somehow, then this same info should reach siegers by spying or something, and they should also know how to reach the trade depot by the same route.
Once the siegers reach the trade depot it should be fairly easy for them to hunt down dwarves that approach the location. But, of course, smart players could build the trade depot far from the fortress. Although this would make the trade depot vulnerable to thieves and make the road to it long and unsafe.
Also, maybe siegers could have some sort of pathfinding that only should give them a way to reach any location on the surface of the fortress like open-sky farms, stockpiles, meting places and assigned fishing locations.
This maybe won't make siegers dangerous enough to kill completely a fortress but they could at least harass dwarves enough to drive them underground and disrupt commerce for a long time.
One last thing for a far future implementation: Siegers could be given the option to poison open-sky water sources for at least the duration of a siege which would kill both dwarves and destroy farmlands that rely on those sources. Which would force dwarves to depend on underground water sources or to fight to end the siege quickly and stop the poisoning.