Your Astra weighed 1000lbs less, had no air conditioning and probably no air bags and would have probably killed you in a 40mph collision though, innit?
And that mileage was presumably measured using imperial gallons, which are 20% larger than US gallons. And it probably didn't get 40mpg anyway unless it was on the highway 100% of the time.
Any chance your MPG was measured on imperial gallons? Looks like 40MPG imperial would be normal for that car, but 40MPG US would be a fair bit more than expected.
Modern small cars with small engines can be quite fuel efficient in highway driving, though, and there 40 mpg isn't quite the very top. A month ago or so I did a trip in a 2016 Seat Toledo (petrol, non-hybrid), and the drive computer reported the consumption as 3.9 L/100 km after 150 km of driving at speeds from 60 to 100 km/h, averaging IIRC 78 km/h.
A 80 km strip at 120 km/h increased the average to 4.2 L/100 km.