Another example is Rommel, who bled white OP Barbarossa with his log truck & fast troops demands for Lybia.
I still think that you judge Hannibal too harshly. He never got significant reinforcements from Carthago. Instead, he managed to keep a war effort going against the great power Rome in its backyard with the little resources that some allies (former Roman allies) were able to offer.
That required a great strategic and political effort. It didn't suffice for besieging & taking Rome, the odds (especially the robustness of Rome's Republic and alliance system) were too tough.
It's furthermore questionable whether he ever had the resources for besieging Rome. The logistical problems of such an undertaking were certainly huge - and he had little reason to be confident about a success after a breach of the walls. Even a small relief army would have been able to mess the whole siege up.
I wouldn't be able to name a single general who would have done better in the specific situation other than maybe Alexander the Great.
Bookmarks