Проблема в путях, которые вы пытаетесь использовать. Первый уровень работает, потому что вы делаете
$scope.model = 'realModel'; // so your template will change vars[model]
// to vars['realModel']
но для второго уровня вы делаете
$scope.notmodel = 'realModel.innerRealModel'; // so your template will bind to
// vars['realmodel.innerRealModel']
// and you want vars['realmodel']['innerRealModel']
Кроме того, если вы связываете vars.realModel
с полем ввода строки, он больше не сможет содержать свойства объекта, такие как innerRealModel