As far as I can tell not too much has changed in the language landscape since then. IO, and Factor seem to have stalled a bit. Scala and Clojure seem to have picked up a little steam. In the time since then Go is the only language to make enough of a splash that I would give it any thought. For me at least, F# is the only older than that language that has become interesting enough to learn.
I'm using Io in a serious project, it is the scripting language I chose to use for my games. Io's expressiveness and reflection has allowed me to make lots of mini-DSLs to simplify game scripting tasks. I'm very happy with the performance of its garbage collector; it's pauseless and I have profiled it as using only 10% of the cpu time while running a game. I think the vm code has been stable for some time now and the move to cmake cleaned up the build process. The only disagreement I have is over coroutines - they do weird things to the stack and they dont play nicely with C++ exceptions if you throw one and let it cross a coroutine boundary. I've started a project to port Io l's C code to C++ and replace the coroutines implementation. Most of my projects on github are related to Io in some way: http://github.com/dennisferron
I wouldn't recommend it if you want to get something done. It is an interesting way to explore the set of features they have chosen for the language(Prototype based OO, meassage passing, code easily modifiable at runtime). The point of the language seems to be more art than tool:
Io's purpose is to refocus attention on expressiveness by exploring higher level dynamic programming features with greater levels of runtime flexibility and simplified programming syntax and semantics.