hime2: Тестани Phalcon, удивит в плане скорости. Но любые тесты - это "лошадь в вакууме", реальный тест - это запуск готового проекта. Ну и надо помнить что некоторые проекты движков написаны для максимизации скорости производства а некоторые для удобства работы с продуктом/его расширения. Это всегда палка о двух концах.
Симфони нет вообще никакого смысла разворачивать для мелких проектов, для этих целей они разработали Silex, по-этому я предложил его.
Но по-моему мнению под вашу ситуацию идеально вписываться Phalcon. По этому я предложил и его.
Перед вызовом внутренней конструкции закрывать внешнюю , а после закрытия внутренней - заново открывать внешнюю.
По идее должно сработать даже если обе (верхняя и нижняя будут иметь общий id="some_id", потому как СКРИПТ вообще не предусматривает ИД), но если не выйдет, попробуйте заменить id на name например