A lot of it has to do with the AT&T copper that they are actually connecting over too. I had their paired DSL offering in Redwood City. One of the lines got something like 10Mb/s, but the other was an abysmal 2Mb/s. It just wasn't worth it to keep the second pair. Sonic was a great company to have as an ISP, but in most areas, they are only as good as the copper they get from AT&T.
Yep this is half my point, line quality is huge in DSL. Sonic (or any other DSL provider) couldn't reasonably give you a guarantee on speeds, even though they know how far you are from the CO (last time I checked they gave you this number when checking availability). I have paired lines and they are also unbalanced (approx 6.5 and 5.5 down), despite assuredly taking the same path from the CO.
My ADSL2+ here in Brisbane Australia runs at 20.1Mb/s -- which is because I live in the literal middle of the "tech area" of this city. Quite spoiled, but as new apartment buildings go up around me, the connection speed starts to struggle as more and more people come online...
But in your situation, it sounds like you were likely extremely far from the central office, and probably had lousy indoor wiring as well. 20Mbit/s is basically the "I can see the phone company office from my window" speeds (less than 1000 wire-feet, give or take).