That's just it, though - the working proof doesn't do this. Well, okay, it does, but only as a side effect. It takes the more general proof and applies it to a specific value of a.
Working proof: x = a <=> 10x = radixpointshift(a)
Your "broken" proof: x = a <=> 10x = 9 + a
The two methods...