In my Store I have 4 Currecies (Euro, GBP, CHF and USD) and in Product Page the Currency Switcher works correctly BUT in Cart it doesn't work.
If I have a Product that cost 100€, and in Cart I switch the Currecy to GBP, it display 100£ (it only changes the Symbol without changing the value) why? And the total is calculate with this wrong price.
The problem obviously appears because you haven't set up the currency rates for those 4 currencies.
It is actually not very convenient to switch the currencies manually when there are plenty of extensions that do this on autopilot.
You can use Magento 2 Currency Switcher extension for the automatic change of price values. This extension uses the GeoIP database to detect the customer's location and display his prices in his local currency automatically.