The rule is against discriminating based on country of origin, not currency. While an EU citizen from a non-Euro country might prefer paying in their local currency, they should be able to choose to pay in Euros and get the same price as everyone else.
I don't understand, are you saying it only applies to Euros?
I assumed (and understood from the link) that it applies to all EU member states, which presently includes the UK. Since the exchange rate fluctuates, there must be some margin of error allowed, otherwise it's almost impossible (and certainly more expensive) to implement with more than one currency.
As I understand them, if you accept Euros at all then you also have to accept them from customers in countries outside the Euro zone such as the UK. So if you try to discriminate against Brits by charging more in GBP than in EUR, they can bypass it by exchanging the money themselves.