Wait, what?
Soldier is the definitive long-range destroyer of Sentry guns, not to mention is great for taking out sentires around corners. An unattended level three can be destroyed in three missiles, and an attended sentry gun with poor engineer placement can be destroyed in four missiles (provided you kill the engineer with splash damage).
And the Soldier is an excellent class to uber. A Demo is not that great because the best thing he could do in the circumstance is kill sentries with no worries, but a Demo can kill sentries without an uber anyway. Both are capable of clearing out rooms with an uber, but a Soldier benefits much more because his projectiles are capable of doing damage more quickly than the Demo. With the Demo, a team could run away.
The Soldier also has faster vertical movement options than the Demo because he takes much less damage than the Demo while rocket/sticky-jumping already having a higher health reservoir to work with, not to mention he can set up rocketjumps much more quickly and easily than a Demo could.
On the other hand, the Demo can attack things around or over corners that no one else could reach, does far more damage per successful hit, is much faster, and has more versatile traveling options.
I view the Demoman as a Soldier with more versatility but more risk, that's all. At least, that's how it seems to have turned out in TF2. In TFC, there was a clear and distinct difference in how they worked. Now, it's somewhat similar, at least in terms of combat roles out in the field.
But overall, in usefulness, a Soldier is more useful than a Demo, and I think the competitive TF2 community has shown this time and time again.