Well, not exactly a rewrite, merely a major internal refactor.
The thought of cleaning up the socket and reactor internals really nags me. I would move the platform dependant code from the sockets module in the reactors - so, say, the reactors would have the platform specific code for recv, send, connect, accept instead of each socket operation class. Also, the fact is that the iocp was added later and the code was patched to support a what was a design scheme based on a reactor pattern - so adding support for another proactor based api (say, linux's aio) would really mudge the internals. Also, moving the readline stuff out of the socket operations in a coroutine would make things real fancy and easy to follow.
Meh, on second thought, i would not have real gain, besides making more easy to add support for another proactor api like aio (wich btw just sucks, it wasn't made for sockets - no support for accept or connect) and priding myself for the fancier internals i would probably get lower performance - and I still have yet to fine tune the performance part.
Now that I have relieved myself I'd better concentrate myself on that diploma thesis. =]