Re: Someone else's mistake?
Hm. I think it's plausible that the errant "rm" deleted the directory entry pointing to the kernel file but not the actual file itself, which would explain why it *didn't* crash next time part of the kernel needed to be paged in. It might not have been just luck. Obvs you'd need the actual directory entry back, pointing at a usable copy of the kernel, for the machine to ever boot again successfully.
It's been part of unix semantics forever that you can open() a file, unlink() it (and any hard links pointing to it) (so now it has no directory entry anywhere in the filesystem) and then carry on using the open file descriptor. read(), wrote(), seek() et al will continue to work and the disk space for the file will be reclaimed only when the file descriptor is closed for whatever reason. The underlying file has a reference count and both hard links and open file descriptors on it increment that refcount.
That all applies to files being accessed by ordinary userspace programs through the normal unix file API. I don't know for sure that it would apply to your kernel image though.