So I stupidly went and bought the Thor DVD...
This DVD has a garbage file with an invalid unicode name that pretends to be VIDEO_TS.IFO. Up-to-date versions of libdvdread know to ignore it, but xine's internal libdvdread is too old. Unfortunately, this isn't the end of the story either. I recompiled xine 1.1.21 against libdvdread/libdvdnav 4.2 but the DVD still wouldn't play. It plays in Totem though, despite complaining about a missing subpicture decoder plugin.
So a refresh of libdvdnav would seem like a good starting place, but I suspect that there's a problem with xine's DVD plugin too.