Using local - calls set_ignoreeof() when unwinding "function_calling". As a result, you have to press ^D 10 times to exit the shell. Anyway, $IGNOREEOF is not changed and shopt -o ignoreeof reports off.
I'm attaching the relevant part of a backtrace from gdb. --- xoxo iza
gdb-trace
Description: Binary data