Steps to reproduce:
1. Enable output cache ( $this->output->cache(1); ) in controller.
2. Change language in config.php
3. Refresh the page.
Refreshed page does not contains selected language.
Refreshed page contains selected language.
Change file: Output.php
$uri = $CFG->item('base_url').
and line: 358
$uri = $CI->config->item('base_url').
If anybody is changing their configuration, then surely they can also delete the cache files while doing it. Trying to detect such changes dynamically isn't justified.