VMG is velocity made good towards a destination, in this case the some point upstream on the river. When VMG equals the current, then there is no wind.But your explanation suggests that boats could never sail downwind at VMG above true wind speed. We've seen them do that.
The key is that the boat isn't going purely upstream / downwind - it's also going across the wind/current. That combination of cross wind with downwind sustains an apparent wind, which is sufficient to keep the boat moving forward.
Think of sailing downwind in a dying breeze. Initially the wind is high and you can run straight down wind, as the wind dies it become necessary to head up to maintain speed, but while heading up the boat is adding distance to be sailed, so VMG can go down, even while boat speed through the water is maintained or increased.
Remember the only breeze is that which is generated by the current pushing the boat through still air. If the current stopped, then there would be no breeze. The current can be effectively negated by moving in the exact opposite direction at the same speed as the current. The boat will look like it is moving through the water, but will not be moving and the air around it will not be moving.
Since all the energy driving the boat is coming from the river, not the air, motion will stop. When viewed from the shore, the boat will be standing still, even if the knot meter is registering 10 kts.
The red herring in this discussion is the wind, there isn't any, it is all about the current and how that affects the air moving past the boat.