I don't know any "rules", but for complex bots, I create separate "power" unit. It basically consists of the battery, as well as some 7805s/7809s. The 78xx series takes a 12V input and gives an xx V output. Most ICs work well on 5V, and an Arduino needs 9V, so that's what I end up using (Note: the 5V/3V output pins on the Arduino are not really meant to be used much. They don't supply much power, so it's best to have a separate 5V line for your circuitry).
After this, I connect all components in parallel to their respective power pins. It is generally beneficial to power the motor with a separate source (common ground). The motor draws the most current, so the simple act of stopping/slowing a motor can send fluctuations throughout the circuit. If you don't want to do this, at least add bypass capacitors to the motor and the power inputs(Vcc/Gnd) of logic circuits (see herehere for more on how they work). These solve quite a few interference issues.
If you want to be a bit more sophisticated, you can add zener diodes to the power outputs. Never had to do this myself, but it's apparently a good way of "rationing out" power. There also are "constant current diodes" that you can use--though I've never even seen one of those.
For redundancy, the most you can do (for DC) is put two batteries in parallel and maybe send power to components by different physical routes. Take note of the "physical" there--the placement of the wires may be different (and they may attach do different parts of the board), but the overall circuit should remain unchanged. The reason behind doing this is that not doing this right may lead to power pins being shorted-- two logically separate 5V outputs shouldn't be shorted together, they won't be exactly the same and you'll probably have some heating/leakage.