Not quite. You would overwrite the partition tables when you re-image it and replace said tables with the ones from the image. After your imaging program is done, it would release the file handle to the image file, but since the partition where the file is stored technically doesn't exist anymore, your program can't read it again. In theory, it would work but only once.
Also, the file needs to be at the end of the storage space so it doesn't get immediately overwritten.
Or at least that's how I think Linux deals with files. The last time I tried this (I did a few months ago), the Pi just hanged. Based on this experiment, you really need another computer to re-image the SD card.
An alternative would be to go the NOOBS method and store boot files on a separate partition then either booting to NOOBS or to an OS if installed. NOOBS somewhat already does what you said, but instead of re-imaging the entire SD, it only replaces the OS partitions. This link tells how NOOBS works.