the issue seems to be in Kentico itself. When I debug the call to
ShoppingCartInfo.GetFormattedPrice() in my code behind it gives me the encoded HTML as a result.
CurrencyInfoProvider.GetFormattedPrice(n,n,false) gave me £.
CurrencyInfoProvider.GetFormattedPrice(n,n,true) gave me the encoded output.
So it is a matter of the the methods doing the encoding. However,
ShoppingCartInfo.GetFormattedPrice doesn't have an overload to not encode the output (which works fine for euro and dollar anyway).
I switched the currency to euro and
ShoppingCartInfo.GetFormattedPrice doesn't encode the result, it actually outputs a euro symbol.