I've come across
"via Gloucester" fares rather than via Cheltenham ones for Bletchley to Taunton; does a similar principle apply where taking direct trains from Birmingham (or Tamworth?) to Taunton, avoiding Gloucester, is allowed?
Edit: my guess would be that it is allowed, as I can't imagine the direct route being more than three miles longer than via Gloucester, and that stating via Gloucester means taking a diversion there is explicitly allowed. What that doesn't explain is why some fares say via Gloucester and others via Birmingham.
Bletchley to Exeter's via Honiton, via Taunton (including Paddington), or via Gloucester; Rugby to Taunton's via Gloucester; Rugby to Exeter says via Birmingham, so changing once is definitely permitted but that's inconsistent.
There is a data feed used by journey planners which lists junctions on avoiding lines and associated stations. If a train that uses an avoiding line is timed to pass one of the junctions listed in the feed, then it is treated as still passing through the associated station for the purposes of the Routeing Guide and any route restrictions.
I'm aware of this covering trains that avoid Gloucester, York and Didcot. It might also cover Westbury, I'm not quite sure. This feed exists to prevent restrictions like "via Gloucester" from barring journey opportunities that are intended to be valid.
There's no real justification for why restrictions like "via Gloucester" are used for fares on those XC journeys. It's probably a historical hangover from the days when almost all trains used to stop and reverse at Gloucester, but that's not been the case for decades now.
The "via Honiton" fares exist for Bletchley to Exeter because this is a journey that was historically within the Network Southeast area, so the NSE sector (or shadow TOCs) wanted to offer a fare that let them keep all most of the revenue. The Intercity sector/shadow TOCs would have created the "via Taunton" fare to compete and keep most of the revenue on the faster route.
For Rugby to Exeter there really should be a fare that allows travel via London, but I imagine the fare structure has not changed since before the days of WCML route modernisation. Since then the frequency and speed of Rugby-Euston has improved significantly, meaning it's a much more viable option. Paddington-Exeter services have also become significantly more frequent, whilst Birmingham-Exeter services are only marginally better than in the HST era.