Would a simple solution be that any online service that you wish to geo-block must also be offered in all regions of the EU? So, companies can still charge their differential pricing but they can't stop any EU citizen from viewing it, so long as they are offering it as a service in one country?
Eg. Sky Now online service is available in the UK and not the rest of the EU (I don't actually know if this is the case but for this example let's say it is). With my idea, they must also offer the service to all other countries in the EU. They could charge £10pm in the UK, €20pm in France, €25pm in Germany or whatever.
I wonder if that would work?