Everytime you change the Things file, the old Thing will be removed (the MqttBrokerConnection disconnects from Mosquitto) and a new Thing is created. The Thing has the same ID as before, and the correctly connects (ONLINE).
What apparently does not work reliable is the “Topic” Thing. This is also recreated on every file change. It does pick up the broker Thing. But it does not pick up the connection within the broker Thing, because that is not yet existing in exactly that millisecond. I will have a look into this.
Could you please create a bug report on Github as well? Title would be along the lines of “MQTT: Textual configuration results in flaky connection status” or so. And also refer to this post.
There is not much I can do before the OH 2.4 release I guess.