Keep in mind that Flavio has advanced around 1 map screen worth of hexes at regular zoom level. He isn't going to be in Berlin any time soon.
The main Soviet Achillesheel is logistics, well it should be anyway and that is still being tweaked. The Soviets lack rail repair units until late in the war and due to some issues with construction battalions spreading out to repair non-essential rail hexes (issues which are also being looked at, I can only stress how quickly the developers try to solve problems we spot) the non-player controlled rail repair is not always optimal, and units need to be close to railheads to get good amounts of supplies.
The main problem with Bob's defensive strategy is that it exposes too much of his infantry: he keeps placing single divisions in line, which in turn get whacked one by one. At first, he also put (in my opinion) too many of his mobile units in reserve mode behind the front, which in turn resulted in even more losses for little gain. Essentially, he's providing Flavio with an abundance of targets, without being strong at any specific point of the line. That has changed a bit after the mud, but by now it might be too late. His defensive as such has been competent, but it has also been more costly than it could have been.
Soviet Rifle formations are still better at taking a beating than dealing it, unless massed and given lavish artillery support. Soviet mobile formations are quite strong, but not quite at their late war best yet. In mid-late 1943, the Tank and Mechanized Corps show their potential, but it isn't maximized yet. Given those shortcomings, Flavio has done an admirable job with his offensive.
WitE Alpha tester
Panzer Corps Beta tester
Unity of Command scenario designer