Actually, I'm pretty sure some of this still happens today, in particular I remember noticing on Vista/Win7 that Explorer sometimes doesn't immediately refresh the folder contents when there's a new file created by external application (e.g. a log file), and refresh/F5 is useful to get this file visible immediately.
Funny thing, per the phenomenon of operant conditioning, over the years of using Windows I learned to regularly refresh Explorer windows via F5 to ensure I always see what's really there, sometimes just for my own peace of mind.
If you have a process that creates a file and then writes e.g. several KB to it every few seconds, without doing anything you'll just see the file created with a size of 0. Eventually it does move from 0 but if you want to see the current size you need to refresh.
For example, if you open a network share, delete a file using another machine that file might take between several seconds to a minute to disappear visually (although if you try to use the file you'll get an error and it will refresh removing it). You can alternatively use the refresh button to get an updated view instantly.
It is mostly useful with non-standard virtual file system services rather than the normal NTFS/FAT32 file systems Windows uses.
http://osxdaily.com/2013/08/30/refreshing-finder-windows-in-...
http://apple.stackexchange.com/questions/60119/how-does-the-...
As you can see people have to come up with quirky workarounds to force refresh a folder on OS X, rather than just clicking a context menu button helpfully provided.
Others have created third party software to add it:
http://www.macupdate.com/app/mac/24714/refresh-finder
This has 46,000 downloads.
Both Windows and OS X fall out of sync for similar reasons: sometimes bugs, sometimes refreshing is slow/expensive so is done infrequently (e.g. over a network), and sometimes third party software providing "virtual" file system elements are terrible.
I don't really find the concept of a refresh button odd at all. But that's only because I've seen how many virtual file system providers these systems support and how quirky some of them are. If all they supported is native files on traditional file systems attached via reliable buses, then a refresh button wouldn't be required.
There's no easy way to refresh due to the various levels of caching involved. Closing and reopening windows doesn't help. In the icns case, not even killing Finder helps. So I assume that even if Apple wasn't fundamentally opposed to a refresh button in the UI, it would be non-trivial to implement the back button.
Mac - "It just works. We refuse to believe that it doesn't."
Windows - "It mostly works, but when it doesn't, press this button."
As you could execute javascript it was also possible to do things like change your desktop wallpaper when you resized or rotated your screen. But active desktop was never heavily used enough to have all the bugs in it sorted out - if you widget's javascript tried to display a message box you could trigger a crash, for example.
I assume that feature is gone now - but presumably you can still put files on the desktop, so presumably there's a refresh button in case you have some strange configuration like your desktop folder mounted from a network share.
If you dig the details, behind the scenes an API called ReadDirectoryChangesW is called, which uses a notification-like system to report changes within a directory. However, that API is weird, so various types of changes are not correctly reported and explorer.exe is stuck with outdated data. The refresh forces it to update the view.
Disclaimer: I've had to use that API recently to code a simple python file monitor in Windows. https://github.com/gusmd/vigil.py in case anyone is interested.
If number of bytes transferred is zero, the buffer was too small to provide detailed information on all the changes that occurred in the directory or subtree. In this case, you should compute the changes by enumerating the directory or subtree.
I suppose that's the case when Explorer gives up, because for this to work it would require keeping a copy of all the directory contents to compare with, and "enumerating" would be unacceptably slow.
I make use of this all the time. For example, I often want to open the same file in two different editors. So in the editor where I have the file already open, I do a Save As to get into the dialog, then simply drag the file directly from that dialog into the other editor, and close the dialog without saving.
Alt+D also works the same in these dialogs as an Explorer window, so a quick way to copy the current file's directory to the clipboard is to do a Save As, Alt+D, Ctrl+C, Esc.
Or to open a standalone File Explorer window somewhere in my current project: Save As, right-click the folder in the Save As dialog, and Open in New Window.
All kinds of nice shortcuts like this are available once you realize that the File dialogs are Explorer windows.
When I get impatient I just swirl the mouse in a small counter-clockwise circle, but I have seen others do the rapid right click, refresh sequence. It was mostly Asian computer users[0], and some of them had practiced it enough that they would do this 3-4 times per second while waiting for the computer to react.
[0] I first noticed this in Iraq, but the Chinese students at school do the same thing.