Its more that they physically can't allow people to change at Reading only if they've come from another service on an Advance because of how the fares system is set up.
As for why, it is a commercial decision, but I was told it is also partially because with the frequency of trains, all arriving on the same platform, it is very hard to distinguish which train they are actually booked on, so the advance system kind of falls apart. It's also too common for trains to be full at Reading, so people get rejected on boarding and then can't travel on their booked train. The whole set up at Reading just doesn't lend itself to advances towards London.