Prices should be responsive to demand and demand varies over time.
Simple time based restrictions can be too blunt a tool for this as shown by the crowding on the first "off peak" departure on some routes. There are ways around this but it would eliminate some anomolies held sacred.
I agree in theory but the "practice" means a way of marrying up the idea of "demand responsive fares" and "simple fares".
We could probably smooth out demand between two places with a busy peak flow by staggering several levels of fare - say return fares varying from £10/ £20/ £30/ £40/ £50 - so that there's not the current "cliff" between FULL FARE and OFF-PEAK - and maybe having different "grades" apply on different days (e.g. the £50 departures from London midweek may be between 16:30 and 18:30 but maybe on a Friday they'd only be between 17:15 and 17:45 due to fewer commuters, with the trains at 17:00 or 18:00 "only" costing £30).
But then that would mean timetables with lots of restrictions, trying to explain to someone why their £40 ticket is valid some of the time but not at all times. It may also mean introducing some form of "premium" to busy departures at other times of the week - packed trains outside of obvious commuter times - maybe the Sunday evening departures from London would cost more than some weekday ones (since that can be a busy time with everyone heading back from a weekend in the capital). Maybe there'd be increased fares at times of big sporting fixtures? More expensive tickets on the final local departure of the evening from some large provincial cities (since that can sometimes be a drunken scrum)... Be careful what you wish for!
(I'm not saying I agree with all of the above, just that making prices "responsive" will also make trains more complicated and could lead to some unforeseen "tweaks"!)