Esse é o comportamento esperado. Referenciar o valor de uma variável irá criá-lo se ainda não existir. Caso contrário, o seguinte seria um erro de sintaxe:
$ awk 'BEGIN { print "Foo is " foo[0]; foo[0]="bar"; print "Foo is " foo[0]; delete foo[0]; print "Foo is " foo[0] }'
Foo is
Foo is bar
Foo is
Isso é verdade mesmo para variáveis não-arrayed, mas como não há delete
operator (algumas vezes) para variáveis planas, isso não acontece frequentemente sem arrays sendo envolvidos na questão.