There are a few reasons:
- If I processed at the time of saving a post, the changes are destructive. This means:
- If people to back to edit their work, there will be a multitude of hidden characters that will interfere with their efforts
- Spell check would be broken (in browsers like Firefox)
- If you disable the plugin, the changes are still hardcoded, and will not go away.
- Changes would only apply to posts saved after the plugin was enabled (not on previous posts, since they have already been saved, and thus would not trigger the typographic filtering).
- Settings would not be editable-since previous filtering is stored in the database, if you turned off hyphenation, that would only apply to new posts saved.
- For most installations, caching resolves performance issues.
But to be honest, the biggest reason is if there is a bug in my code, I don’t want to be responsible for destroying data in the thousands of websites that use this plugin. If something goes wrong, they can just turn it off — no damage done.