I believe that the cancellation Colonel O'Neal's promotion to Brigade Command was due to "Army politics". It may have started when Colonel O'Neal was transferred to Rodes' Brigade in June 1862 to complete the transformation into an ALL Alabamian brigade (3rd, 5th, 6th, 12th, and 26th Alabama Infantry regiments.) Many in Alabama, including Congressmen William Yancey and Clement C. Clay, were unhappy that an Alabamian had not been promoted to Brigade command over Robert Rodes, a native Virginian. O'Neal was the likely candidate that the people of Alabama had in mind, and he had strong political connections in Alabama. The protests from the politicians and some of the Alabama troops, were ignored, and Rodes retained command.
After Robert Rodes was elevated to Division command before the Battle of Chancellorsville, O'Neal was given his opportunity at Brigade command. He had shown himself to be fearless in battle and worthy of promotion. Unfortunately, he was wounded in the leg by a shell, during the Battle of Chancellorsville. Now, E_just_E made the point that "O'Neal proved that he has no reason commanding a brigade. 40% casualties on Day 1 was totally avoidable and meaningless..." I would respectfully disagree.
When Robert Rodes brought his Division onto Oak Hill, northwest of Gettysburg on July 1, 1863, the battle had been raging for several hours. Rodes "thought" he was on the Union's right flank, and made preparations for an attack on that flank. Part of these dispositions was detaching the 3rd Alabama Infantry from O'Neal's Brigade and placing another of his regiments, the 5th Alabama in a reserve position. When O'Neal's Brigade was ordered forward for its initial attack, there were only three understrength regiments to make the advance. (After the Battle of Chancellorsville, the 26th Alabama had been so decimated, that the regiment only had a company Lieutenant left in command!) Unbeknownst to General Rodes, during all the time that he had been organizing his troops for the attack, the entire Union XI Corps had made their way through the town of Gettysburg and taken up a position on his left flank. (Union troops would continue to pour forward on his left throughout the afternoon.) When O'Neal's Brigade went forward, they were quickly tour to pieces by a strong front and enfilading fire on their left. There was no way these three regiments could succeed over overwhelming numbers. The initial attack was over in 15 - 20 minutes. O'Neal, unexplainedly had not gone forward with these troops. He did however, rally his retreating troops, and with the aid of the 5th Alabama, made two more charges on their front before joining Gordon's men for the route of the Union Army through Gettysburg late in the day.
Rodes Division suffered terrible on July 1st, but Robert Rodes must bear the blame. However, by the end of August 1863, O'Neal was replaced primarily because of the animosity of Robert Rodes. IMO this was an injustice to Colonel Edward O'Neal.