As long as you use any cache plugins, the plugins will cache everything, including the currency cookies and the currency switch will show your chosen currency only after cache is deleted from plugin.
Our hosting company installed varnishcache and memcache server directly (not through a plugin). And this caching system doesn’t affect the multi-currency widget. You can test here http://wpresidence.net/
If you need a cache plugin, for now this option may work.
Use W3 Cache plugin and set exceptions to not cache these cookies: