Comparing Lee's success to brilliant Generals is hardly anything great. McClellan had a penchant for not sending his army in unless he felt like he had the most 2 to 1 odds. He could have snuffed Lee's army out in the early goings of the wars but he was too chicken. There's a reason Grant taking over was the big turning point in the War. Grant was not afraid to send troops into a spotty battle. He knew long term his side had the numbers and the mechanical advantage. ANd that was after Lee had years to recruit and train. If Grant was in charge instead of McClellan that part of the campaign would have gone a lot faster. That being said, then the question of if Grant was running the Eastern Campaign, what happened out West, where Grant and Co. won countless victories over the Confederates.
As far as your last point, Lee had a choice, he could have fought for the Union. He opted not to. If Lee cared about the Union, he would have fought for it. But he cared about the right to own slaves more.