Oxford Junction is the junction immediately North of Reading West, and Reading West Junction is about a mile west of Reading station. They are linked by a chord which forms the western side of a triangle, The north side is the mainline from Reading to Didcot. The east side is the line from Reading to Reading West. The west side is principally used by freights from Southampton, Basingstoke and Reading West to Didcot and destinations North, and vice versa. There are no scheduled passenger services over this section of track. It is sometimes used for reversing HSTs (if there is fault in the leading cab, for example), and occasionally for diversions (Cross Country sometimes run directly from Oxford to Basingstoke, not calling at Reading, during engineering work).
It sounds as though the sleeper came back up the B&H, thru Reading West, round the west side of the triangle, and straight on to Didcot and Bristol, then picking up its route at Exeter, thus avoiding Reading station.
I am not surprised that it is was able to make up so much time. It is timed so that it can run via any route (B&H, Yeovil, Bath, Bristol Parkway, Bristol TM etc.) and still be be on time. Its not unusual to see the up sleeper arrive an hour early into Reading (where it waits for its scheduled departure time, early departures not being allowed, even for set down only calls!).
So everything is west of reading so how can a pad to pnz avoid reading to get there
Its not paddington departures that use the reading avoiding - must learn comprehension