Speaking as someone who does onboard ticket checks and sales, I would be swamped if I didn't have barriers at major stations to keep a lid on the numbers buying onboard.I wonder how the overall cost of revenue protection would change if instead of barriers and barrier staff, roaming RPIs, back-room investigators, and the administration of penalty fares and prosecutions etc, the norm was that trains were staffed such that every passenger had their ticket checked on every journey. That might mean 2 or 3 on board staff on some services, but getting everyone to pay the right amount (and fixing out of date railcards etc) as they travel rather than the random and inconsistent experience passengers have at the moment would be much better customer service and might get more revenue from the habitual non-payer who avoids detection, gives false details etc.
On long-distance services that's less likely to be an issue. More time for the guard to get through and a greater proportion of stations will be barriered.As long as one of these checks takes place the railway will recover it's money. It's a very simple and effective piece of revenue protection. Moves to single leg pricing mean it won't hold true in the same way though although the use of online ticketing, etickets and smartcards opens up a whole load of new ways to identify offenders.
For short-distances there's more to lose. The answer might be that singles would only be half of the price of a return where the passenger MUST purchase before boarding. So Advances (which typically disappear about five minutes before departure) and PAYG (where you must tap-in before boarding to avoid an incomplete journey charge).