Well, that was confusing - and many players wrote to tell us so. Our apologies!
The explanation was incomplete. We have now added the following text:
The reason....that the correct answer displays "NDF" is that Oracle also raises the NO_DATA_FOUND exception when you try to "read" an element in a collection at an undefined index value. As a result, when Oracle executes this line:
sys.DBMS_OUTPUT.put_line (tab (1).dummy);
Hopefully all is now clear. Thanks for "keeping us honest."