I don't know about Mach3, but some controller software only permits one M code per line.
Actually, M5 is your spindle stop command, but M0 and M 30 might be set up to do this in the PLC (or equivalent), depending on the desire of the builder. If running lathes, you probably don't want the spindle to stop all the time on an M0. Strictly speaking, M0 is a program stop, and what it does to the machine is up to the builder.
First you get good, then you get fast. Then grouchiness sets in.
(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)