Other way round, I think,
>Which meant low income were subsidising EU travellers with expense accounts ...
>which is hardly a progressive move.
I think the situation was more that EU travellers with expense accounts had previously been subsidising low income mobile users, and the impact of the regulation of roaming charges reduced the level of these subsidies, honestly. Margins on roaming were (and in the case of non-EU roaming, still are) huge, and mobile operators were using these to subsidise their very competitive, high-capex, low margin domestic businesses. Various decisions - both regulatory and operator led - caused the industry to evolve with this structure, but I don't think the result was either healthy or sustainable. For one thing, it discouraged the large number of travellers who are paying their own phone bills and who do not have expense accounts from using mobile services at all, even though the infrastructure is there, the service was likely to be useful to them, and the price they would be willing to pay is considerably more than the marginal cost to operators of providing for it. The operators were making so much money from travellers with expense accounts that they were willing to forgo this business, but the trouble was that the regulatory structure prevented anyone else from bidding for it.
Ms Kroes' solution - which led to regulators setting prices, basically - was a bad one, but it was an attempt to address a real problem. Good solutions would have instead involved networks being able to bid on price for incoming roaming customers. You travel to Germany and receive a text from each German operator stating the price of roaming to them. You then reply with another text choosing an operator, and you are charged the rates of that operator. Something like that. Possibly you also have the ability to nominate the choice on a website or app before you travel. (This still leaves the issue of what exactly your local operator charges for forwarding your calls when you are away and for billing you later, but this is a smaller issue to resolve).