Doesn't apply to Switzerland either. In some countries the operators increased their domestic tariffs for all to cover the wholesale costs of roaming while in others operators have introduced cheaper domestic only tariffs. It isn't all milk and honey.
The whole Roam at Home programme is not based on economics but the politics of promoting the EU.
Switzerland will be included as part of the plan to include the EEA. There's very clear political will to get rid of roaming charges throughout Europe, not just in the EU. As for the increase in domestic tariffs, that was simply about protecting their profit margins and not about the actual cost of providing the service.
I suspect you may well be correct that there are insufficient mobile phone networks to provide adequate competition, and if there is inadequate competition, then regulation may be necessary to protect consumers. However, regulation of prices is invariably a very imperfect solution that would ideally need to be kept under review to make sure it remains necessary and that the particular regulations are appropriate: It's so easy for badly designed or overly heavy-handed price regulation to do more harm than good. I'd therefore be somewhat reluctant to embed price regulation in a treaty, which thereby becomes very difficult to change later on. I'd much rather any regulation of UK phone provider prices is done purely as a Government regulation that can be easily adjusted if market circumstances change.
The trick, I think, would have been to simply agree that free roaming would continue, but that either party had the right to unilaterally withdraw from the agreement. If there were strong market reasons (and not just 'let's give BT and Vodafone more money'), then there could be a formal withdrawal. Vodafone is particularly bad, given that they own a large network of mobile towers in the EU.
The UK networks can't afford free roaming as they now have to pay the wholesale charges that don't apply to EU members (and was recently extended 10 years - which means even in the EU, in theory, they could reintroduce charges one day because it has an expiry).
The EU would happily have agreed for UK-EU to be treated the same way as between EU countries.
The thing I cannot understand is *why* the Tories didn't sort this out. It was and is a popular policy, it came at little to no cost to consumers, and the only thing I can think of is that Vodafone and BT had some words.