Não, não é possível executar toda a memória flash. Por exemplo, digamos que você tenha um chip flash serial que requer várias instruções apenas para ler um único byte desse chip flash. Como você pode executar o código desse chip flash?
Praticamente todo PC tem um chip flash em cada RAM contendo as especificações da RAM. Você com certeza não pode executar o código nesse chip flash, já que ele não está mapeado na memória e só pode ser acessado por seqüências complexas de código conversando com o controlador de memória.
Ou considere uma CPU com espaços de endereçamento de dados e executáveis separados. Um chip flash que foi mapeado no espaço de endereços de dados também não seria executável.
Os detalhes são muito específicos do dispositivo. Mas não é incomum para um dispositivo ter flash que não é executável.
Pense em uma unidade flash USB ou SSD. Você não pode executar o código daqueles sem copiá-lo para a RAM primeiro. (E os sistemas embarcados geralmente não possuem RAM suficiente para armazenar uma cópia.)
Além disso, algumas CPUs têm requisitos de desempenho na memória que são executáveis. Algumas CPUs não têm a capacidade de inserir estados de espera em buscas de programas, mas na busca de dados. Então flash executável deve ser muito rápido. Não é incomum usar flash mais barato para dados. (O DS80C320, por exemplo, pode tolerar memória de dados mais lenta, mas a memória executável deve ser executada na velocidade máxima.)