Well, with hindsight, of course it's easy to say that Xun Yu was right and Liu Bei should have been killed there and then.
However, considering the situation Cao Cao was in at that time, I would have to say that he made the right choice. Though Cao did have quite a bit of prestige and power (having kidnapped Emperor Xian), it was still uncertain whether he or Yuan Shao would be the ultimate victor. Lu Bu was still at large. Cao needed all possible popular support to legitimize his position, and killing an imperial relative wouldn't do. Liu Bei was relatively harmless, too, since he had only a few supporters and no land base.
If Cao Cao did have Liu Bei killed, Guan and Zhang might either leave or commit suicide or something. Guan Yu wouldn't be there to kill Yan Liang/Wen Chou (we're going by novel, right?). Knowing what Cao Cao do with imperial cousins would probably strengthen Liu Biao's resolve to repel him, and Liu Zong would probably put up a fight instead of surrendering. Since Liu Biao left quite a bit of a navy behind, Cao's forces would receive a big blow, stalling the southern campaign. Sun Quan would have had more time to mobilize and put up a staunch defence along the River.
I say Guo Jia was right.
"Whatever you do, don't fall off the bridge! It'll be a pain to try to get back up again." - Private, DW 8