なぜ、論理アドレスのビット数も、内部演算のビット数も、
8、16,32,64などと2の冪にこだわるのだろうか。

もっと柔軟に、24ビットとか40ビットとか48ビットとか56ビットとか
72ビットとか80ビットとか96ビットとかそういったのあっても良いのじゃ無いの?
たとえばC言語であれば、データの長さは8ビットの倍数で、アドレスはバイト単位に
振られていさえすればいいだけなのに。Fortranなどであっても、
別に整数が2の冪乗ビット数を持っているとかいう必要はまるで無いのに。
16ビットでは足らないが20ビットあれば十分だとか、
32ビットでは足らないが40ビットあれば十分だとか、
64ビットでは足らないが72ビットあれば十分だなどという
用途には、20ビットコンピュータとか40ビットコンピュータとか72ビット
コンピュータのCPUを作れば良いだろ。
 命令セットも、ファミリーチップの実際の語長が違っていても
同じ命令のフォーマットであったり、
あるいはさらに同じバイナリが使えるようなものを作れるはずだし。