People are mistaking "recovery" time for many other things. As mentioned earlier, the late night Virgins have subtantial amounts of Engineering recovery time to account for possible slow line running. You cant just add this as and when you want to schedules as they are based on Rules of the Route possesions. If the engineers dont take them, the train runs early, simple as. Every train on the network will have an element of engineering time in it, so if there are no TSRs etc... it runs early.
The xx.45 services could well be right behind something else, therefore have pathing time in them to keep them at the headway.
The Newport example is probably a case of public time versus working time. The WTT will show a departure of xx.40, which is why TRUST shows it then, but the public schedule is shown at xx.39 to keep to a pattern timetable. If the train is ready at xx.39 it can go.