Interesting question, indeed. But the answer to them lies in the cost of the components. In processors, we need only 2^32 (or lately, 2^64) address space to address the amount of ram a single processor will probably be fitted with. WHy not increase to 33bit or 40bit? This is more of future-proofing and also to allow 64bit register contents to be sent in one go to the processor. As you will see, we use either one REGISTER or two REGISTER rather than one BIT or two BIT. This will explain the doubling of bits rather than one or two bit incremens.
In registers, we need only 8-bit space to put commonly used numbers in. Sometimes we need 16-bit space to put larger numbers.
To answer you why 8, 16, 32, 64, 128, etc look like magical numbers, you need to remind yourself of the binary system. Now almost all registers are 8 bits in length. So values put in them will be designed to take up the entire 8 bits at a time. So someone needing 9 bits of space will use two 8bit registers, and hence, 16bits.
Since during memory access, we put in the address of the data in registers, we are forced to use 8,16. etc bits for addressing. Ofcourse, the ram size need not follow this rule. The OS will know how much ram can be addressed.
As for HDD, which don't need one register or two register of address to be specified since they are not accessed in the same way as RAM, Any power of two will work. Also, manufacturers like to give you round figures in 1000bits=1KB format.