It's strange it took me this long to hit this, but it looks like in handling smilies, the forum software tries to guard against accidental transforms by basically requiring the previous character to be a non-letter, I think. In other words, test;P;P as you can see is left alone (but not just specifically for that smiley of course, it pretty much applies to all of them). Makes sense to avoid accidental transforms in normally typed text, but really bad user experience when this happens upon click-and-insert. Overall, for me this is getting to the point of defeating the purpose of being able to click-and-insert.
I suppose the proper solution is to perform an automatic space insertion upon click-and-insert, but only when the previous character is a letter or whatever class of characters it is that would prevent the forum software from interpreting the smiley code. Then we get the best of both worlds where Simon don't get burned by extra spaces, and I don't get burned over and over by "forgetting" spaces.