Sure it is. In the first place, your flow is easy to understand. Secondly, it works as you want. Thumbs up.
You mentioned that you are going to send data to MQTT every minute. In such a case you can consider using the delay node in the rate-limit mode. This way you do the traffic shaping in the output of the flow instead of messing with the modbus part.
Now, if you need to extract much more than 20 addresses then the flow can grow too large too quickly and it seems to me this is the reason you edited the flow asking how to simplify the extracting, right?
One possible way is by using a function node, like the one below. In that flow, you will hard code in the change node an array of topic names. The code in the function node will map the values coming from modbus to the topic names based on array indexes.
[{"id":"cca4f0d8.ff67b","type":"tab","label":"Map array of values to array of topics","disabled":false,"info":""},{"id":"a8a1f8b5.ccfbf8","type":"inject","z":"cca4f0d8.ff67b","name":"","topic":"","payload":"[\"a\",\"b\",\"c\",\"d\",\"e\"]","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":190,"y":200,"wires":[["e87907b0.632788"]]},{"id":"e87907b0.632788","type":"function","z":"cca4f0d8.ff67b","name":"Map values to topics","func":"let pay = msg.payload;\nlet arrTopic = global.get(\"topic\");\n\nfunction maptopic(v,i,a) {\n return {\"payload\":v, \"topic\":arrTopic[i]};\n}\n\nlet arr = pay.map(maptopic);\n\nnode.warn(arr);\nreturn msg;","outputs":1,"noerr":0,"x":440,"y":200,"wires":[[]]},{"id":"ef8960d3.49ebf","type":"inject","z":"cca4f0d8.ff67b","name":"","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":160,"y":120,"wires":[["d8ee374f.59c068"]]},{"id":"d8ee374f.59c068","type":"change","z":"cca4f0d8.ff67b","name":"","rules":[{"t":"set","p":"topic","pt":"global","to":"[\"SDM-a\",\"SDM-b\",\"SDM-c\",\"SDM-d\",\"SDM-e\",\"SDM-f\",\"SDM-g\",\"SDM-h\",\"SDM-i\",\"SDM-j\"]","tot":"json"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":120,"wires":[[]]}]