010101 TextFormatter code is split in 2 parts that behave slightly differently: the javascript preview in the browser, and the PHP parser in the backend.
The preview should always render immediately, as soon as you start a new post or click edit on an existing one.
However in the backend, the parser needs to be manually invoked to take into account new supported syntaxes or bbcodes. At the same time, Flarum only calls the parser if the input text changed, hence why you need to modify at least one character.
In theory you might be able to create an extension that detects that the text input contains newly supported syntaxes and offer to re-parse the post in the backend for you without any need to modify its source. You could also create a command/script that re-parses all posts in the database with the new supported bbcodes.
The other way around is a bit different. If a bbcode is no longer available, posts that have already been parsed will continue to know about the old bbcode. If the post isn't edited in the meantime, making the bbcode available again will automatically make it visible in the post again. But this is only possible if the bbcode was active the last time the post was edited.
Even though bbcodes have a very predictable syntax (compared to Markdown), Flarum can't parse unknown bbcodes in advance because it doesn't know which internal name it should assign to it (it can be different from the bbcode tag) nor which bbcode attributes should be accepted and what type they should be.