Strava calculates its own pace and record efforts from the raw GPS data, rather than using Garmin's calculations. It's not surprising that there is some difference, but 30 seconds seems quite a lot.
I think this is the usual behaviour for Garmin - if the distance is "close" to one of the distances for which records are tracked, then GC will assume that you ran the record-distance rather than the distance measured by the watch.
This is actually a reasonable assumption. On organised races the official distance is the shortest possible way you can run the course, and most runners run slightly longer (weaving in and out of groups, not being quite close enough to corners, crossing the road to get to a water station, etc). Yet most of us would like the time in which we complete an officially measured 10 km race to be recorded as the record (assuming it was a PB), rather than a shorter time. Of course, when it's not an official race there is no official distance, so then we get situations like the one you described. But it seems to me that GC is doing the best it can in an imperfect situation.
That makes some sense, my previous records were all set on runs that were at a much longer distance than the record distance. So the lesson here is that I probably should have stopped the watch earlier or tacked on another mile or so to the run.
It's also worth mentioning that you can simply edit the time so it displays whatever you want it to be.If you go to the "Personal records" page on GC it will show you the various PBs. If you hover the mouse over the time it doesn't change shape to indicate that it's an editable field, but just click on the time and it becomes editable. Enter the time you spent on the first 10 km of the run and click the green tickbox.