This problem has existed for a very long time, and I (like you) didn't realize that the auto-recovery didn't retain the last saved file contents.
Every time I recover from a crash, I always compare all windows (with the last saved version of the file) to see what has changed, and close all open windows.
The reason I close all open windows is because I seem to recall that, for a file that may have been changed outside of PL/SQL Developer, you may not get the "<filename> timestamp has changed" prompt for a file that was opened from the recovery area (one that has "Recovery file loaded" in the status bar). Note that I haven't verified that this is still a problem with the latest PL/SQL Developer version, but I'm guessing that it still is.
I would think that saving a file to disk would cause PL/SQL Developer to immediately also update the window's current text information in its recovery file, but no. It is an annoying situation, but that just seems to be the way it is (sigh).