I can't disagree with the statement that there is a complicated system of fares, but only because we introduced cheap advance tickets and other discounts - and I expect that people want them (rather than having the choice of a peak or off-peak walk up ticket).
Although advanced tickets came about under BR, the idea of competition was always to have more choice - and that can become complicated. But, by comparison, airlines are far worse. I'm trying to claim some points on a flight I did a while back and discovered there are LOADS of different ticket classes (albeit grouped up into one economy class) and that influences the ticket price, and probably how many points I'll get.
The difference is that for the most part, customers don't see all of the different ticket prices when booking a flight - they just see prices going up as discounted tickets are 'used up'. On the railway, you often get to see all of the options in a long list, and have to wonder which one to pick (especially when there are different restrictions for them).
However, in the case of getting a discount for having a particular card, it's quite clear that no railcard = totally invalid ticket. Otherwise, I'd just buy a discounted ticket every time I travelled, and claim I forgot my card or just offer to pay the difference. Not all gatelines are programmed to stop discounted tickets, so for lines where there are no automatic onboard checks, everyone would have a go. But they won't if they can't just pay the difference or get let off.
That railcard is every bit as important as the ticket, and the two can't be separated. Your son has now learnt a valuable lesson, which is good given how many more years he can benefit from such discounts. Get him to put his railcard in his wallet, or always carry the railcard in a separate ticket wallet - on the basis that he never knows when he might want to use the train!