25 years ago at the food store, it was explained to me that the owners liability insurance only covered employees on the clock, and customers while the store was open as per posted hours. He would "generously" allow us to walk thru the store uninsured on the way to the exit door, but we'd be fired if we were caught working off the clock uninsured as he had no financial interest in losing the store to someone with a foot run over by a pallet jack or something.
Obviously employers no longer have liability insurance issues like this or they'd be insane to have people working off the clock. If you want to get rid of slavery, make it too expensive by reversing whatever insurance regulation changed sometime in the last 25 years. Could also play an OSHA game where any accident of any sort not matter the facts is automatically guilty if the employee is off the clock under some doctrine of them being a member of the general public not an employee. Either way your best bet is not a morals or ethics argument (businessmen if anything tend to oppose them in general because usually the people making them are usually trying to screw them) but change the game rules to make it a simple financial argument.
For that matter, the kind of shenanigans employers pull with on/off time and wage theft mostly happen on the books. Even employees don't necessarily know if and how they are cheated on at any particular point in time.
If you don't want to pay someone for 4 hours of commute per day, maybe dedicate some time to locating a closer place for them to live and paying for a move. Like you said: there are other ways to deal with it.
If employers should not pay for events out of their control then employees should not work if it exists out of their control (e.g. shift work).
In this case though the premise is wrong. Take a McDonalds restaurant in central London. Their workers have to commute. The store knows this. The workers don't choose it out of some sort of work life balance decision - it is impossible to rent downtown on minimum wage (as in, literally the rent is greater than 13K GBP a year).
Also, I know this is anecdotal, but when I worked retail/fast food in HS/college, we were always paid up until we were done work. If the store closed at 9 and we couldn't leave until 10 because of customers and cleanup, we got paid until 10. I would have thought it bizarre if they did anything different - I'm sure it happens, but it didn't where I worked (a few national/international chains). This could of course cause some perverse incentives with closing up slowly, but there are other ways to deal with that, the simplest of which being to just fire people who are intentionally working slowly.