"I think that sometimes too, but then I to places like the US and Canada, and realise that while we may have annoyances with the mobile providers here, at least we're (relatively) only paying third-world prices for them."
I hear ya'. The prices here in the states from the "better" carriers are atrocious. I would not have the service I have if I didn't have a grandfathered plan. The rates from "cheaper" carriers and MVNOs are still (generally) quite high compared to pricing almost anywhere else.
" It cites the 2010 Ofcom paper, which says that seamless national roaming – where your call is handed over from (say) Vodafone to EE as you move along – is complex and expensive to implement, and reduces operator differentiation. It also hammers battery life, with the handset constantly looking for a better signal across any network it can find."
*Live* handoffs (especially voice) *ARE* complex to implement. The cell site you are on has a neighbor list, and the cell site you are on must list the "other" carrier's cell sites on it's neighbor list; there has to be interconnection directly between the phone switches running the respective cell sites, since a in-handoff call has to be forwarded from one to the other without interruption. On the other hand, just using the PRL (preferrred roaming list) or ... whatever GSM calls the equivalent... to prefer your carrier, then list the other Uk carriers afterwards, is simple; calls will drop, but power use isn't a big issue; the phone doesn't even look for the other carriers until it's lost your carrier's signal. Inter-carrier handoff is almost never done here in the US (your phone will amost always prefer other carriers *if* it loses native service, but no handoff of calls; data sessions may or may not hand over.)
"DCMS also acknowledges another difficulty: a handset would lose its weaker 3G or 4G signal after it glommed onto a stronger 2G signal."
If it's done like here in the US (your carrier is preferred then the rest in some priority order), then there can be some variation based on phone firmware. Usually, the phone will hang onto the native signal until it's just about too weak to use, then switch to another carrier if available. (You could get native 2G at 1 bar even if there's 5 bars of 4G on another carrier. Sorry!) Usually, if you are roaming the phone periodically looks for (good enough) native service every couple minutes and switches back when it comes back. The firmware bugs I've read about, some phones will stick to a TOTALLY UNUSABLE native signal, people will have to like cup the phone in their hands or whatever to force it to lose that last bit of signal and roam; and some phones will be far too slow (like 15 minutes) switching back to native unless they reboot. But usually it's all pretty seamless. However, the "the phone hits a small coverage hole and goes right to 2G" is one reason why some phones have "2G only", "3G only", "3G/4G only" etc. selections.