At first, yes.
An alternate system to the one currently proposed is to have sieging enemies on the map generate a bad thought, which increases as the number of enemies, or squads, increases. Enemy elites, leaders and champions will generate a larger bad thought all on their own.
This gets counter acted in two ways. First, your own military. Your dwarves get a positive thought during a siege for every soldier you that not just a recruit, they get a better thought for elites and a very good thought for champions, who can almost walk through goblins squads at times.
Secondly, if you kill a goblin, your dwarves should get a moral boost, killing a leader would bring a larger boost. This won't work particularly well in the current version as the goblins tend to flee when they take casualties, but we ever end up where they properly siege, long periods of waiting with small, bloody fights, then this would be more useful.
Similarly, the goblins should also get moral boosts as they kill dwarves, which would stop them from retreating so quickly.
Finally, as Footkerchief says, the negative thoughts from invaders should start out stronger than the positive thoughts and then die down, while the positive thoughts from your army should get stronger for a while and then also die down.
This would simulate the initial panic as invaders arrive, and then as they become confident that the enemy is being held at bay. Then they get complacent, which is represented by the lack of positive or negative thoughts.