This is an unfortunate part of us being midway-through converting from Ember’s ‘classic’ reactivity system (get/set/computed) to the ‘octane’ @tracked / native-getters.
So as discussed above, the problem with your example is that you’re accessing a non-@tracked property from a native getter.
Accessing the full path directly from a template will work, although as you say, it limits the logic available.
Alternatively, using .get() will allow Ember’s new autotracking system to work against classic (i.e. non-@tracked) properties.
So in this case, it would be
get statusMessage() {
return this.args.topic.get("my_metadata.status");
}