It isn't possible because it isn't a use case that we've chosen to address so far. There are a number of technical ways it could be done, the question is what is the right way for node-red to do it.
It also depends on what the actual use case is:
1. an mqtt node that can receive its configuration from some external source at start-up, but not change whilst running.
2. an mqtt node that can, at runtime, change what topic it is subscribed to.
As Dave says, we solve #1 today in real uses by templating the flow file and updating it at boot time before running node-red. An alternative solution would be to modify the node implementation to pick up its topic from the settings file. However, that is a slippery slope - why just do that with the MQTT node... why not other properties of other nodes? And you still need to update the settings file before running node-red, so on balance, is a worse option than just updating the flow file.
#2 is a bigger change. The only way to modify a node's state at runtime is to send it a message as part of a flow. That means we would need an MQTT node that sits in the middle of a flow; messages it receives set the topic (triggering an unsubscribe/subscribe sequence) and then terminate. The node then emits the MQTT messages it receives.
Hans - what broker's support that sort of topic manipulation? Not any that I know of... but the list is growing faster than I can keep up with.
Nick