Вы можете принудительно установить ключ кэша, передав ключ sf_cache_key компоненту:
include_component('menu', 'main', array('sf_cache_key' => $sf_params->get('item')));
Таким образом, компонент будет кэшироваться для каждого значения элемента.
Другой способ - использовать разные наборы параметров:
include_component('menu', 'main', array('item' => $sf_params->get('item')));
Таким образом, компонент будет кэшироваться также для каждого значения элемента.
В первом решении вы форсируете ключ кеша. Это полезно, когда вам нужна пользовательская логика, чтобы решить, должен ли сгенерироваться кеш или нет.
Второе решение основано на том факте, что компонент кэшируется для каждой комбинации значений параметров, передаваемых ему (конечно, их может быть несколько).