IIRC, the Tcl conference in Austin (was that 1999?), a paper on Xotcl was presented. Xotcl is indeed an excellent design and very tcl-ish in its usage. I used it years ago (when it was otcl) and would gladly use it again. It is a lightweight interface as compared to [incr tcl]. On the other hand, Itcl more closely follows C++, so if you like C++ you'll like [incr tcl]. I'm pretty sure that Itcl is thread-safe. My guess is that XOtcl is also.
I took to using [incr tcl] and have enjoyed it greatly. In fact, as I wade through learning OpenACS, I've begun writing an application to generate the initial code (SQL, PG/PLSQL, TCL) to help get a new object type up fast. It is currently in [incr tcl] but could easily be ported to Xotcl. I'm going to post more about it in a separate thread so as not to go too off topic here.
[incr tcl] is an excellent way to provide more structure and increase reusability in your Tcl code. I've had a lot of experience with it, and it really works.