Hello,
Overall, yes, its a rather odd way to work, but the group I'm in is not a traditional software development house

All of the points you've mentioned are valid.
To provide a little background, since you seem to be interested:
We have a small team of 9 developers, each one working on an unrelated project. We do have a few core modules that are shared, but they are rarely updated. We don't run into issues of multiple people updating the same file at once due the nature of our work.
We use PERL and develop web applications that have database access. So, we don't have "compilation" issues like a traditional software house would have with C, VB, Delphi, etc. We primarily use Windows (some of use Linux) on our desktops with our editor of choice (mine is, of course, ME) to edit files located on Solaris server over a SMB mount.
Since we're writing web services that run on a Solaris box, we'd need to create rather complex sandboxes with separate database instances (so if someone were updating a core module that referenced a database table, it could have a different structure than the ones everyone else is using) for each developer. The setup and maintenance of all of these independent web servers and databases and synchronizing changes would introduce more delays and difficulties than the current system. We'd also need more DNS entries for each developer that works on each project, so each developer could access each project they have worked on or might need to work on in the future. There is significant overhead required to set up and maintain everything that would be needed for all of the developers to have private web servers, databases (both structures and data), perl modules, other libraries used (glibc, etc).
We do have version management in use, but we use it at a server-level instead of a per-user (sandbox) level.
Yes, I have autosave turned off. I typically have no more than 10 lines edited before saving and testing; so even if my desktop HD goes out, I'll lose far more time installing a new OS and ME than I will in work due to the handful of lost lines of code.
I know all of this must seem very foreign to you, it's okay. It's an odd setup but it works remarkably well for us. I can get a bug report or feature request and literally have it in place and live on our development platform for preliminary testing in less than 30 seconds. Rolling the change to our QA and production tiers takes longer, since it involves our source control system.
You may wonder if the code we write is separate from the projects the other developers are working on, why is saving a file in an intermediate state a problem? We have a different team of "GUI" developers that handle the front-end of the web services we write the back-end for. Any compilation errors in the back end would prevent them from using the web service to render their HTML templates, should they be working on the project the same time we are.
Again, this isn't to negate any of the points you've mentioned. They are all absolutely 100% valid. We're a horse of a different color and we don't have the issues you've mentioned. I've left out details just so I didn't write a novel, so I'm sure there are still things that might perplex you.
We do have some C/C++ developers in a different group that work on a traditional compiled application, and they use version control in the manner you've mentioned. And when I worked on a C++ desktop application years ago that's how we did it then too.
...and if you're curious, we use Perforce.
--James