Managed to get to my laptop, so a long post.
I am no expert in criminal law, just starting out in contract law (and that even business/commercial for now). However we must take a moment to understand why ToCs view that railcard discount misuse before 10am is not excess-able.
(I will keep the example limited to network card and probably refer to GWR and Reading to London Paddington or Waterloo below)
There is the reasonable assumption that anyone caught on a train before 10am with a railcard discounted ticket has done it previously and therefore allowing the passenger to excess it misses the change to investigate other instances. It is therefore completely reasonable that the passenger is not PF'ed even and details taken for further investigation.
Coming to the contractual part of it. You cannot excess something that does not exist.
We will leave aside purchases from third parties and focus on three most common methods to purchase a ticket.
1. On the counter - will not be a problem if you try to buy a ticket when not valid as you will be inquired about it.
2. At the TVM - for network card (and I have confirmed myself at Reading station this Friday), you will not be able to select the Network card discount option if you try to buy a ticket when its not valid. Having said that, if you try to buy one after 10am, then technically it is valid anytime, because from the moment it is issued, it is valid for anytime from then. To re-iterate, it will not issue you a ticket pre-10am with the discount
3. Online on GWR website. It clearly shows you on the mixing deck the various prices at various times. With a disclaimer that prices will change based on selection.
Now that we have got that out of the way, lets look at is common in all three methods above.
1. You need to specify your origin and destination
2. You need to specify when you intend to travel
And these are considered material conditions/representations. The whole contract is drafted based on these two inputs. All other items are other representations/conditions. I must emphasize the important distinction between material representations and other representations (reps for short for now).
Material reps are those that if altered even slightly, will change the decision/price/output of what is being discussed and the change, if indicated at the outset, would result in either party pricing the contract differently. It is mandatory for both parties to agree to even the slightest change in material reps.
Other reps are those that if altered slightly, would not change the eventual output and even if indicated at the outset, would not have resulted in a material change to the contract.
To the best of my knowledge, you cannot purchase a ticket without the two reps above being clear to both parties.
1. Origin and destination
No TVM or online retailer will sell you a ticket without specifying these and you might be laughed out of the queue at a counter. Fare experts can help me out, but in theory, you could buy a ticket from everywhere to everywhere, in the sense that a counter staff with enough time on their hand, may be able to sell you a set of 2-3 anytime tickets from the most north station in the country to the most south as an anytime return with break of journey permissible and perhaps you can use that to travel from anywhere to anywhere - a very expensive proposition if one wants to do.
2. When to travel
By this I do not mean the exact time, but rather where the intended time to travel falls within the fares available to issue. Going back to the methods of purcahse, if you are buying online, you must enter a time but for the other two, you only need to specify whether you are travelling peak or off peak (and when you intend to return where applicable).
Once the above two information is furnished by the customer, the ToC offers the fares it is willing to issue for the journey. These can vary based on:
1a. The origin and destination. Change these and the ToC will reprice the journey.
1b. The route taken. Change this and the ToC will reprice the journey.
2a. Whether the journey is peak or offpeak within the fare structure. Change this and the ToC will reprice the journey.
3. Class of journey (I will ignore this bit from below as all our discussion is on standard class).
There are other reps which if you change, will not result in a reprice, example seat selection, cycle rack, aisle/window etc. Change these and no reprice will happen.
In the fare offers, a customer is presented with the following options, with decreasing flexiblity:
1. Anytime / Any route permitted - no restrictions at all on when and how you travel (within routing reason)
2. Anytime / Specific route - no restriction on time, but limited to a specific route
3. Off peak / Any route - can travel at any time except peak time but can use any route
4. Off peak / Specific route - can travel at any time except peak time and limited to a specific route
5. Advance fare - travel restricted to a specific time and route. not valid in all other instances
A lot of words till now, but coming to the main point.
If a customer approaches a ticketing counter and tries to buy a ticket for travel at 9am with a network railcard, they will not be sold a ticket because such a fare offer does not exist. This is very important to grasp. Its not a question of not able to sell/buy, but fundamentally, staff/retailer can not sell what is not there. This ticket offer will exist from 10:01am onwards, but not before that.
And therefore, anyone getting on a 9am with a network discounted ticket is effectively boarding without a ticket.
This is very different from boarding a 9am with an offpeak, which the ToCs are willing to excess, because at 9am, a peak ticket exists for exactly the same journey for which the offpeak one is being used. Or for that matter, when the route is changed, the inspector may issue an excess for the correct route because both of them exist at the point in time the journey is being made. But at 9am, no "peak network railcard discounted fare" exists and therefore the question of excessing the post 10:01am ticket doesnt arise - its straight PF similar to holding no ticket or TIR if there is a cause to believe there are more instances. You can't excess to something that doesn't exist. There is the argument that why not allow them to excess to an anytime undiscounted fare, but thats inviting to "pay when challenged". In my view, the current rule is based on a framework that is tied to the fundamentals of ticket issuance and therefore provides a predictable outcome in what to do when something doesnt go per plan.
I know I have mentioned many time the importance of time selection, but where the whole "fare offer" is presented to the buyer based on just 2 key reps, it would be wrong to dismiss any of them as irrelevant.
Your first assumption (highlighted in bold) that anyone caught before 10am has done it previously and so is knowingly breaking the rules is astounding and completely unreasonable. Far more likely to be an innocent mistake, as we've seen here. A sensible solution would be for the TOC to have a method of recording the incident against the railcard number, then checking that record if it happens again and issuing a PF for subsequent breaches. If the onboard tech can't do that (poor signal, etc), then that's a failure of the TOC and they just have to excess again. That might encourage them to resolve the many poor signal areas.
You do not need to specify when you intend to travel. If I use the Greater Anglia website to look for a ticket from Colchester To London for tomorrow morning, with a Network Railcard discount, these are a couple of options:-


If I pick the after 10am departure, then the price changes as it applies the Railcard discount. Both clearly say "Travel any time of day" and "you can travel on any eligible train". No difference at all in the wording to suggest there are extra restrictions on the later train.
Personally, I often buy tickets the day before travelling (even if buying e-tickets) and rarely pick the actual departure time. I'm aware of the railcard restrictions, so just make sure I've selected a discounted ticket when booking. So I'm not specifying when I intend to travel.