All sorts of reasons, a few listed above…..but also:
Dwell time at the station (train stops for a shorter time when setting down only so overall journey time is reduced)
Dwell time at the station (train stops for a shorter time, meaning more trains can run over the same bit of line increasing capacity)
Commercial agreements between operators so as not to extract fares from each other (usually instructed by DfT for ‘moderation of competition’!!)
Some operators don’t want to run a commuter service on a long distance train (e.g. virgin trains stop at Watford are set-down only heading into London, and pick up only heading out)
As said above, a set down only stop can continue any early running, so often last services of the night might have this to allow for engineering works to be built into the timetable (on multiple lines, network rail might need to regularly close one set to conduct work, so often the last services of the night are timed to allow all the services to go through on the open lines – you may see that last services of the night take a much longer journey time officially, but if for any reason the engineering work does not go ahead, the actual journey time might be much quicker than planned. If the stops are set down only, the train can get to destination quicker…..)
I can’t think of any more, but there will be other reasons.
Edit: there may be something in that^^^ Rich, but it’s a bit cynical 🙂