Peter:
One guess as to why you're seeing the multiple-compile/cycle behavior:
AOLserver maintains a seperate TCL interpreter for each thread. Probably
these interpreters don't share compiled versions of TCL scripts, so when you
hit a script that a particular thread's interpreter hasn't compiled yet, you have
to go through compilation again despite the fact that some other thread may
have already compiled it. And if the compiled versions vary, the behavior you
observe will vary depending on which thread services a particular request.
(Caveat: 10 minutes spent looking over the AOLserver source doesn't
give me a definite answer about unshared compiled versions, so I'm not
100% certain on this.)