Ron Blaisdell pointed out that my use of noscript elements wasn’t XHTML compliant. Instead of using noscript tags, each enkoded section is preceded by a span containing the “you don’t have JavaScript” message. When the dekoded text is written to the document, this span is deleted.
The latest version is up on PHPEnkoder’s home page and the WordPress plugin directory. (For some reason, PHPEnkoder doesn’t come up when you search for it in the directory, but Google can see it. I’m not sure what the problem is here…)