I think the following code is explains the issue better than I could.
I attached a tarball, which contains a demonstration of this issue, just unpack it, change the path to ezc and run it.
I'm not quite sure whether this is a bug or whether I missunderstand the reset() method
<?php
require_once 'Base/src/ezc_bootstrap.php';
$cfg = ezcConfigurationManager::getInstance();
// configs/a contains an file storage.ini looking like this:
// [server]
// type=foo
$cfg->init( 'ezcConfigurationIniReader', 'configs/a' );
// output is string(3) "foo"
var_dump( $cfg->getSetting( 'storage', 'server', 'type' ) );
$cfg->reset();
$cfg = ezcConfigurationManager::getInstance();
// configs/b contains an file storage.ini looking like this:
// [server]
// type=bar
$cfg->init( 'ezcConfigurationIniReader', 'configs/b' );
// output should be string(3) "bar", but is string(3) "foo"
var_dump( $cfg->getSetting( 'storage', 'server', 'type' ) );