If the circuit is correct, reversing motor direction should not harm the circuit. The motor on the other hand is a different matter. Suddenly changing direction is not going to be good on the mechanics.
Why can you not stop the motor first before changing direction?
Stopping is acutually easy with a H bridge, just turn off any transistors in the upper part of the H and tur on both transistor in the bottom of the H. This is shorting the motor to 0V.
You are partially correct about back emf. Inductors, like the coils in the motor, will cause a back voltage when the current flow through them stops. In a motor, this happens when the comutator switches to the next coil in the motor. Any switching circuit for coils should always have fly back diodes to protect the transistor.
If the PSU cannot handle the voltage spikes, you need a better psu. The regulator on the Arduino may not have a diode across the Voltage regulator, a diode across the Vreg input to output protects the Vreg output from injecting a voltage to the output. The diode must be in the right direction, blocks voltage from the Vreg input to output.
Do not kniw about L298N.