Even if sillies occur, it's fairly easy to have an IT system sanity check and correct them. If for some reason a touch in at Paddington, then a touch out at Reading, then 10 minutes later a touch in at Ealing Broadway, then it's obvious that something has gone wrong. If you're willing to give passengers the lowest possibility in such situations (and automatically log it to find out why) - i.e. in this case that they did not in fact go to Reading but Ealing Broadway - then nobody will really be upset.
One thing that would also help, though it's a new tech one, would be to have a display on any gatelines/readers showing whether a touch in at that point would be peak or off peak. That does require standardising what constitutes peak, but that would be a good thing in the SE anyway.