Um alias é expandido quando é a primeira palavra no comando. Então, quando você digita:
alias foo=bar
foo () { blah "$@"; }
o alias foo
é expandido, por isso é tratado como se você tivesse digitado:
bar () { blah "$@"; }
Quando você digita:
alias mya=echo
mya=cat
a primeira palavra no comando é mya=cat
, não apenas mya
, portanto, o alias não é expandido. =
não é um delimitador de palavras, é meramente o delimitador entre a variável e o valor em uma atribuição de variável.