Não e sim. No Bash ou no shell padrão, a primeira parte da expansão deve ser um parâmetro (ou seja, um parâmetro variável ou posicional, ou um dos parâmetros especiais), não qualquer palavra.
Bash :
The basic form of parameter expansion is ${parameter}. The value of parameter is substituted. The parameter is a shell parameter as described above or an array reference.
O texto no POSIX também menciona apenas parâmetros.
Você pode usar uma expansão nas outras partes das expansões, pois elas podem ser palavras arbitrárias. Mas isso, claro, não ajuda no encadeamento de manipulações da mesma string (como no seu exemplo ${${s##*/}%.txt}
)
$ bash -c 's=/the/path/foo.txt; ext=.tyt; echo "${s%${ext/y/x}}"'
/the/path/foo
O Zsh suporta explicitamente o encadeamento, embora:
If a ${...} type parameter expression or a $(...) type command substitution is used in place of name above, it is expanded first and the result is used as if it were the value of name.