We are planning a fairly "deep" IVR menu structure but right at the top we will ask the caller to choose English or Spanish. Under your current system, we must produce the entire menu tree TWICE - once for each language and then do any future changes TWICE (once for each tree). Imagine if we had to support more than just two languages!
It seems like it would be more efficient if the initial language selection could simply set a session variable (relevant only to that particular call), and then at each level of a SINGLE IVR tree, that variable was used to govern which language prompt is played.
This can already be done with a Sangoma/Digium system (they have many options for setting and reacting to variables) and I was surprised to learn that your system cannot do that (and indeed doesn't seem to allow for variable generation or reaction at all).