Não, não é possível executar com 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 possui um chip flash em cada cartão de memória RAM contendo as especificações da memória RAM. Você com certeza não pode executar o código nesse chip flash, pois ele não está mapeado na memória e só pode ser acessado por sequências complexas de código que estão conversando com o controlador de memória.
Ou considere uma CPU que tenha espaços de endereço de dados executáveis e separados. Um chip flash mapeado no espaço de endereço de dados também não seria executável.
Os detalhes são muito específicos do dispositivo. Mas não é incomum que um dispositivo possua flash que não seja executável.
Pense em uma unidade flash SSD ou USB. Você não pode executar código fora deles sem copiá-lo para a RAM primeiro. (E os sistemas embarcados geralmente não têm RAM suficiente para armazenar uma cópia.)
Além disso, algumas CPUs têm requisitos de desempenho na memória que é executável. Algumas CPUs não têm a capacidade de inserir estados de espera nas buscas do programa, mas sim na busca de dados. Portanto, o flash executável deve ser muito rápido. Não é incomum usar flash mais barato para dados. (O DS80C320, por exemplo, pode tolerar uma memória de dados mais lenta, mas a memória executável deve ser executada a toda velocidade.)