Since
$expr starts out holding the string
'$a[0]' (without quotes), each time through the loop adds
'${' to the front, and
'}[0]' to the back (without the quotes). I'm guessing that something like
${${${ .... ${$a[0]}[0]}[0] ... }[0]
is printed.
I haven't a clue what the eval'd print prints, but I suspect it involves a lot of autovivification.
(After running the snippet: D'oh)