So, other than the 5 pages of discussions over the security of 3D Secure (yes, it's broken and insecure, no, it's not more broken than Chip and Pin - go look this up if you want, the first 4 bytes request the next n bytes, it's trivially easy to get all of your card details off a chip and pin card, or to spoof an amount in a chip and pin reader, or to spoof the transaction security, due to the concept of "Pin Not Entered" at byte 7, all banking security systems are terrible, except those designed to protect the banks' money, if you're really worried, I recommend a high spec safe and cash), it is functionally immaterial to the discussion. We're still not discussing insta-closing all ticket offices right now. As time goes on, the security will improve, (some) banks have taken steps to rectify chip & pin security as well as their implementations of 3D Secure and as time goes on and the lawsuits get bigger, those will further improve. Already, contactless is actually pretty secure (provided no-one has the physical card - compared with Chip & Pin and 3D Secure, neither of which require the physical card).
The point made by fowler9 is the more important point. People are flexible, it's why we don't automate literally every process ever. The fares structure is easily programmable, because it's just a set of rules, people's foibles are not. Now, I buy quite a lot of my tickets online, I know all the things I'm willing to do to make a journey. When I buy a ticket online, through websites with highly functional user interfaces using tried and tested mouse & keyboard, a mature technology, this process can take 10 - 30 minutes. An example why:
I want to travel from Newcastle to Brockenhurst,
On a specific Friday (insert date),
I want to leave after 1600,
I want to find the cheapest ticket,
I want to have an hour in London to buy dinner
I don't want to get in too late.
I want to return from Southampton Aiport Parkway to Durham
On the Sunday
I want flexibility on my travel from Southampton Airport Parkway to London
But I don't care how long I stay in London.
I want to find the cheapest ticket,
I don't want to get in too late.
All with a 16-25 railcard.
And I have an oyster card, so I don't want to add cross-London travel.
Seat reservations all the way
Now, just to type that out has taken a non-trivial amount of time (say 2 minutes, inc. thinking time). Now, imagine trying to enter that into a touch-screen interface which understands it. OK, that's a particularly horrible example and I'm sure even the hardiest of ticket office staff would have difficulty, but they'd do a damn site better than a person standing at a TVM either looking up multiple options (as I say, that's a 30 minute job on a proper computer), or specifically entering the options and having a machine come up with:
Advance: 1625 Newcastle - King's Cross
Advance: 2105 Waterloo - Brockenhurst
Day Return Weekend Deal: Off-Peak Times Only Southampton Aiport Pkwy - Waterloo
Advance: 2100 King's Cross - Durham
(it was all barely £60 if memory serves me right)
Anyway, the point being that it's how the user interfaces with the machine that's why ticket offices are needed, not any technological barrier.