lordkelvin said:
has any work been done trying to understand the properties of long chains of oscillatory functions?
like f(x) = sin(sin(sin(sin(cos(sin(cos(x))))))) for example, or something like e^e^e^e^e^e^e^e^e^e^z)
For slightly simpler problems much is known. In your first example, using both sines and cosines makes it more difficult to handle than if you had just used one or the other. So, I'll just use one kind of function in my following explanation.
Consider some function f(x). Let
f_n(x) = \underbrace{f \circ f \circ f \circ \dots f}_{\rm{n~times}} (x),
such that f_1(x) = f(x). It can be seen that f_{n+1}(x) = f(f_n(x)), or, letting x_j \equiv f_j(x) to make it cleaner,
x_{n+1} = f(x_n),
with x_0 = x.
This is just an iterated map: you pick an initial value for x, and then you plug it into your function, take the output, and plug it back into the function, and so on. There are a few possibilities for the behavior of the iterated function. Typically, as you iterate this more and more you will approach a certain limiting value, called a fixed point. A fixed point is a value of x for which x = f(x), and for convenience the possibility of x = \pm \infty is included. If your initial point is a fixed point, you just keep getting that fixed point back. If your initial x is not a fixed point, the function will flow towards a fixed point as you keep iterating the functions. If the function has more than one fixed point, which fixed the function approaches as you iterate will depend on your initial value of x.
Another possibility is that there are no fixed points and you end up in a cycle - e.g., a two period cycle for which y = f(x) and x = f(y), so you don't approach a limit as you keep iterating, you just end up bouncing back between these two points. Higher-period cycles are also possible.
Another possibility is chaos - iterations do not approach any sort of limit and the output appears to be random.
So, for a concrete example, if f(x) = cos(x), then asking what does the function
f_4(x) = \cos(\cos(\cos(\cos(x))))
do, you'll get some function of x - the output will depend on the initial condition, but if you trying looking at more and more iterations of the cosine, you should find that the function is close to value 0.739085, which is the solution to x = cos(x). This will be the value of f_\infty(x), for any x. For finite numbers of iterations, the function f_n(x) will be close to this value, but there will still be variations. If you check f_n(0.739085), you should find that it is close to 0.739085 (it may not match exactly due to numerical roundoff).
You could similarly try f(z) = exp(z), but for z real you find that the only fixed point is z = infinity.
I'm not sure what happens if you start randomly switching functions in the iterations. I imagine people have probably studied iterated maps where you switch the function every other iteration, e.g., x_n = f(y_n), y_n = g(x_n), but if you randomly switch a function I imagine it's much harder to analyze in complete detail.
Some relevant wikipedia pages:
http://en.wikipedia.org/wiki/Logistic_map
http://en.wikipedia.org/wiki/Cobweb_diagram
http://en.wikipedia.org/wiki/Iterated_map
http://en.wikipedia.org/wiki/Chaos_theory