It isn't intended to be a permanent fix or to reduce the cost per mile. It's a blanket ban to fix extremely expensive fares on the assumption that it won't cost much as few people pay that much. For long journeys, it assumes that few people would want to do a 6-7hr train journey. Rail gets a bad reputation for triple-figure standard-class tickets, even if very few people pay for them.It does nothing for "expensive" flows like Crewe to Chester, York to Leeds, Reading to Paddington etc.
What do you consider to be a better use of subsidy, reducing a day return of 8 miles from £10, or reducing a day return of 250 miles from £120?
Fixing the high price-per-mile fares would require more complex fare reform. Doing so would be a good thing but it takes a lot more time than a £99 cap which can be implemented short term.