>>385
アドレス空間が何種類あっても、アドレス値を取得した時点での用途と
アドレス値を使用する時点での用途が一致してれば実用上は問題ないでしょ。
アドレス値の用途を一致させなかった場合の動作は不正になるけど、
それは自己書き換えなどアーキテクチャに依存する処理だったりするから動作する保障は元々無い。
>>386
ハーバードアーキテクチャはメモリ空間を分けることが高速化で有利とかもあった筈。
あとスタックオーバフローは大抵リターンアドレスの上書きにが先に起きるし、
バッファオーバフローの方がプログラムメモリを破壊しやすい気がするってのは重箱の隅。
>>387
ワンチップマイコンの場合はプログラムメモリはROMやFlashで、SRAMやEEPROMとは区別される事が多い。
その場合はアドレスバス幅を節約できるしハーバードアーキテクチャも合理的なんじゃないかな。