Focando em a):
Executando o comando
foo=$(echo bar)
inicia um subshell, porque o comando está usando uma substituição de comando, o que implica um subshell como o ambiente que é usado.
O comando executa explicitamente um subshell , simples assim.
E isso não muda se você aninhar.
Agora, depois da pergunta "Por que a casca está fazendo isso" é respondida:
Por que você está perguntando isso?
É um tópico interessante, mas não vejo totalmente o que você está mirando;
Algumas suposições loucas:
- Propondo uma implementação de otimização do bash?
- Reduzindo a contagem de garfos? Por motivos de desempenho? Por algum tipo de razões estéticas? É a maneira mais rápida de fornecer um ambiente separado, incluindo espaço de endereço - um processo.
- Alterando a sintaxe do shell? Para alcançar exatamente o objetivo?
Se você quiser, adicione detalhes à pergunta e deixe um comentário.
De man bash
COMMAND EXECUTION ENVIRONMENT
[ ... ]
Command substitution, commands grouped with parentheses, and asyn‐
chronous commands are invoked in a subshell environment that is a
duplicate of the shell environment, except that traps caught by the
shell are reset to the values that the shell inherited from its par‐
ent at invocation. Builtin commands that are invoked as part of a
pipeline are also executed in a subshell environment. Changes made
to the subshell environment cannot affect the shell's execution envi‐
ronment.
[ ... ]