You are almost right. With enough RAM, a system will work perfectly without swap. There is, however, a small performance penalty. Even with enough RAM, Linux will swap out processes, trying to free memory for use as disk cache. On most cases, this yields performance gains, which would be lost if the swap file is disabled.
Oh? So where do you put swapped-out pages when you go into hibernation? Or would you first need to defragment your page file contents just to dump RAM contents into it? Or keep a map what pages in the pagefile are swapped out and what are just hibernated RAM and then piece stuff together on wake-up again?
You simply swap out all your memory. There's no technical difference between a hibernated page and a swapped out page - the only difference is that the OS normally prevents certain pages (e.g. kernel pages) from being swapped out to preserve performance.
The current state of Virtual Memory is RAM + pagefile/swap partition. The hibernate file would be used to restore just the RAM. You still need the additional pagefile/swap partition to completely come back to that state once you wakeup.