Those fares that you quote from Cardiff to London - where you have to book way ahead to get something like £26 are not user friendly and will dissuade many from rail travel. The Welsh Government want people off the roads and onto the trains but most people simply won’t pay these kinds of rail fares.
You say that the cheapest fare for Saturday is £45.80 one way. I have just checked fares for Saturday from Birmingham to London return and get roughly £33 using the slower stopping trains of West Midlands Railway to £47 using the Avanti high speed services - all at convenient times. A third operator - Chiltern has fares roughly in the middle using Marylebone as the London terminus. Now, I know that it is a bit shorter in distance from Birmingham to London than Cardiff to London - but not as much as to make such a price differential. So, First Group run Avanti & GWR but GWR has no competition on the route - thus allowing First to get away with these high fares and all this book way ahead stuff to get the prices down. The East Coast Mainline also has several operators (including First) and I dare say that mile for mile, it will also have more user friendly fares than the GWR.
When I last checked, paying on the day for a day return from a Cardiff suburban station nearly always worked out cheaper to pay for the local leg separately - even when you would do all travel on TfW. On journeys from Cardiff Central, if you call at any of these places, checked out using them as a ‘split point’ - even though you stay on the same train:>
Swindon, Gowerton, Cheltenham, Filton, Taunton, Exeter, Cwmbran, Ludlow, Crewe. If changing at Bristol Parkway - check that out as well.
Always check out these sites for finding lower fares via ‘splits’:> TrainTickets.com and trainsplit.com (where I prefer the classic site v the ‘new’ version - click ‘Proceed’).