the shell opens the file and looks for a shebang line, finds it, interprets it,
The shell does not; the kernel does. (You *will* see it documented in some shells... as something they will try if the kernel-based one fails. Are you still running 2.9BSD?)
--