Why are word sizes in modern CPU’s a power of 2?
There is no good reason really. Having 12/24/48/96 bit would have been much more useful.

Historically, if we had had 12 bit bytes, then color graphics storing 1 byte per pixel would have had 16 different values for red, green and blue components, and we would never have suffered the madness of color palettes in graphics hardware. 

Nowadays, you could store Unicode codepoints usually in a 12 bit byte, and sometimes using two 12 bit bytes. 

48 bit pointers would still be plenty (enough to address 256 Terabyte of RAM, but with 12 bits per byte, so this would actually equivalent to 384 Tera octets). 

48 bit floating point is enough for most purposes (where 32 bit floating point isn't).