It’s a limitation of Oyster, which won’t refund a previously charged fare earlier in the journey. If you’re using an adult Oyster, then it will refund the difference if there is one when the days touches are run through the back office overnight. Unfortunately, this doesn’t yet happen with zip cards or other discounted Oysters.
In this particular case, you wouldn’t be overcharged using an adult card as the zone 2 peak single is less than the zone 1-2 off-peak single. It’s only an issue for 11-15 zip cards because of the flat fare system.
Finally, if you wanted to save the 10p then you could change once at Waterloo.