Abraham Lincoln put up with a lot from general-in-chief of the Union Army George B. McClellan. McClellan derided Lincoln in front of his staff and made no effort to hide his contempt for the president at social gatherings. Even in his face-to-face meetings with Lincoln, McClellan proved high-handed. Lincoln kept him on all the same--as long as McClellan proved effective in his job. Drilling and equipping the army, creating the huge logistical machine needed to feed, clothe and house the army--at all this McClellan shone. Then came the time to fight. After McClellan's Peninsula Campaign of 1862 ended in failure--McClellan lost the opportunity to capture Richmond and then, at Antietam, permitted Lee, commanding a smaller force, to maneuver the battle to a draw, preserving the Confederate army--only then did Lincoln remove McClellan. ("If Gen. McClellan does not want to use the army," Lincoln famously remarked, "I would like to borrow it for a time.")
Maybe the test Lincoln applied to McClellan applies to McChrystal as well. Has McChrystal mouthed off? He has indeed. But has he proven effective in Afghanistan? Has he done his job? Still more to the point, does the president--does anyone?--have any reason to suppose a different commander could do the job better?