Why is a datapath in microcontrollers always a power of 2 wide?
Tradition has a strong pull. But so does interoperability. Pretty much every existing file format and communications protocol operates on bytes. How do you handle these in your 7-bit microcontroller?

The PIC gets away with it by having the instruction space entirely seperate and programmed in advance from outside. There is some value in bit-shaving the instruction set, as it's the one thing you get to control yourself as a microprocessor designer.

If you want an extreme architecture, you could Huffman code the instruction set, giving you variable length bitness.