I honestly don't think realistic distance-time calculations or force-ratios will change the minds of some. Indeed, this came up in the 1864 elections, with it being noted that McClellan was moving as fast or faster than Grant and Sherman did in 1864. Those convinced otherwise were immune to those facts.
For example, Halleck accused McClellan of only moving 6 miles a day. If I draw the near straight line route from Washington to Sharpsburg it's 77 miles, and McClellan's army made that journey in 9 days, including a day of fighting. Hence in 8 days of movement McClellan moved 77 miles, and indeed formations average around 10 miles/day.
Similarly, from the crossing at Berlin (modern Brunswick) to Warrenton is 54 miles, and the 9th Corps moved 62 miles.
McClellan's Potomac crossing is a model. The 5 Corps he was going to move where disposed thus:
6th Corps: Hagerstown (watching Williamsport etc.)
5th Corps: Sharpsburg (watching the crossings)
9th, 1st and 2nd Corps: Harper's Ferry (along with 12th Corps, being left to defend the river)
On the 26th he had Burnside's 9th Corps move to Berlin, and seize a debouche on the far bank with a division. Reynolds' 1st Corps moved to Burkettsville where they resupplied and were in supporting distance of 9th Corps The next day the whole of 9th Corps crossed and occupied Lovettsville and 1st Corps moved to Berlin. Pleasonton's cavalry advanced to Purcellville, whilst Stoneman's cavalry crossed at Edward's Ferry and occupied Leesburg.
Plans for the 28th were disrupted by intelligence that Lee was going to attack Harper's Ferry. McClellan froze the corps along the Potomac in place, and had Averell's cavalry cross the Potomac and conduct a recce. Around midday on the 29th Averell still hadn't reported back, but McClellan assessed the threat must be false and ordered Burnside's 9th Corps, supported by 1st Corps, forward to near Leesburg, and Couch's 2nd Corps to push over the Shenandoah into the Piney Run Valley. The evening of the 29th Averell reported that there was no major forces threatening the Potomac. He was correct, on the 28th Longstreet had started marching to try and head McClellan off.
The 30th October, McClellan stripped the Potomac line of 5th and 6th Corps, with them marching for HF and Berlin respectively. Couch pushed the 2nd Corps forward, with 2 divisions at Hillsboro by the end of the day.
The 31st Porter pushed 2 divisions of 5th Corps over the Shenandoah, and Franklin's 6th Corps reached the vicinity of Berlin. With the majority of the army across the Potomac, a general advance could begin.
On 1st November McClellan had the 1st Corps pass through 9th Corps and Wheatland to the vicinity of Purcellville, and pushed 2nd Corps forward to Woodgrove and 5th Corps to Hillsboro. By the end of the days marching, excepting a couple of divisions detached to the east, 4 whole corps were concentrated and within striking distance of Snicker's Gap. McClellan also told 11th Corps to make their move to Thoroughfare Gap.
On the 2nd November, 2nd and 5th Corps go straight at Snicker's Gap and assault it, then also seize Ashby's Gap. The 1st and 9th Corps moved S to Middleburg through Philomont, gaining a lodgement over Goose Creek; yet again McClellan pushed a division over a water feature to secure the crossing. Hancock's division of 2nd Corps assaulted the cavalry at Snicker's Gap, and held it against a counterattack by AP Hill's division until reinforced by 5th Corps. The other two 2nd Corps divisions on being relieved started moving towards Ashby's Gap, but McClellan halted them on indications that Jackson's whole force might strike Hancock. To the south, Pleasonton's Cavalry met Stuart at Unison and had a stiff fight that prevented him moving on the railroad.
On the 3rd, McClellan is sure Porter's 5th Corps can handle Jackson, and actually has them punch through the gap towards AP Hill on the Shenandoah River. The 2nd Corps marches on Ashby's Gap, supported by 9th Corps. Pleasonton is reinforced by Averell, and strikes Upperville, where Stuart with 2 of his 3 brigades is, covering DH Hill's withdrawal. This is the largest all-cavalry battle of the war until Brandy Station. Pleasonton pushes Stuart off the field and then advances on Ashby's Gap, having sent Averell against Manassas Gap. Pleasonton found the gap held in force (DH Hill's division), and waited for the 2nd Corps. Couch arrives and occupies the base of the mountains, driving in Hills outposts, but decides to wait for 9th Corps before mounting a general assault. The 9th Corps is running late, and wouldn't reach Upperville until the next day.
Franklin's 6th Corps reached the vicinity of 1st and 9th Corps on the 3rd. The 11th Corps had reached Thoroughfare Gap Thus by the end of the 3rd McClellan's dispositions were:
5th Corps: Snicker's Gap
1st, 6th and 9th Corps: concentrated in the triangle Bloomfield-Unison-Philomont
Pleasonton's cavalry and 2nd Corps: Paris, at the base of Ashby's Gap
11th Corps: Thoroughfare Gap
Averell's cavalry: Piedmont Station (modern Delaplane)
He had successfully moved the army through the Loundon Valley and blocked all threats to his flank. It only remained for the wagons to clear the area. The next day the only troop movements were Burnside's 9th Corps marching to support 2nd Corps, and 2nd Corps assaulting Ashby's Gap.
That evening McClellan's int confirmed that Jackson and AP Hill hadn't moved, and that Longstreet was at Culpeper. He ordered the 5th Corps to abandon Snicker's Gap, as the army was to draw supplies by the Manassas Gap Railroad. The 5th Corps would be delayed by a day. 2nd Corps held Ashby's Gap. 9th Corps occupied Manassas Gap and pushed forces south of the RR. 1st Corps marched to Rectortown, and 6th were behind them. Pleasonton's and Averell's Cavalry masked Chester Gap in force, but could not gain it without infantry.
On the 6th all corps but the 9th moved to make a general concentration at Warrenton. The 9th Corps moved to Waterloo on the Rappahanock, and they pushed over a couple of divisions and held the far bank whilst Waterloo Bridge was being repaired. Thus is the situation when McClellan is relieved.
There are lessons to be learnt about McClellan from these and other operations:
1. McClellan was not afraid of pushing over water features.
Here, twice, 9th Corps was pushed over a river line to secure the far bank. This is in accordance with his previous operations. If there is a move to Fredericksburg it would be out of character for McClellan NOT to seize the far bank.
2. McClellan was on the alert for an attack from Jackson, but wasn't paralysed by it.
As McClellan moved, he seized the mountain gaps. He expected major fights, and had large concentrations of force available at each. He then left a single corps (-) occupying them and moved on. Once the gaps were worth nothing he abandoned them.
3. McClellan never occupied Chester Gap, and didn't fear an attack
Why? Because it was not a threat. The other Gaps threatened with debouches attacking his lines of communication, but Chester Gap did not. McClellan had cavalry watch Chester Gap, because some int said Jackson was ready to burst through it. McClellan was not threatened by this.
4. McClellan moved faster than 6 miles/day
The corps distances were:
1st Corps: 65 miles (
link) in 5 marches
2nd Corps: 76 miles (
link) in 9 marches (including two seizures of gaps)
5th Corps: 72 miles (
link) in 7 marches
6th Corps: 80 miles (
link) in 6 marches
9th Corps: 77 miles (
link) in 6 marches
There were of course days where Corps were stationary, holding a position. The moving corps averaged 9-13 miles/ day, and in several cases 20 mile forced marches happened (such as the movement to Waterloo). I see no reason to use 6 or 7 miles/ day.