The VM approach helps in that "what happens in the VM stays in the VM".
You would do your things in the VM and then reinstantiate it every time (there was, perhaps there still is, a Windows helper app called SteadyState that allowed a sort-of-VM to continuously be recreated while still being kept updated).
The essential thing is that the VM have no access except to the Web. Your personal documents, etc., would stay outside the VM. If you need to download a file, you would download it in a "shared folder" and then run a virus scan from the guest operating system once the VM is down.
This way, in theory, no virus or malware can infect the guest operating system unbeknownst to the user.
Your sequence of operation would be:
- keep the "pristine" virtual machine somewhere (say C:/VM/Pristine).
- copy the VM into C:/VM/Dirty
- fire up Dirty and use it to your heart's content
- copy any files you need from Dirty to C:/VM/SuspiciousFiles
- power down Dirty
- delete it. Any virus, malware, etc. is thereby destroyed.
- virus-scan the contents of SuspiciousFiles
Occasionally, you would fire up Pristine, run Windows Update or zypper update
or apt-get update
or whatever, then power it down again, ready to be cloned into a new Dirty.
As for anonymity, your IP address would be still visible, but you could configure your VM to be a "stock" machine with all default options, in no way different from millions of others. Even frameworks such as Panopticlick would be hard pressed to reliably recognize it.
UPDATE: reverse protection
A similar level of isolation, but lower, exists between the outer machine and the VM (i.e. you want to use a clean VM on a possibly dirty machine). What happens is that a virus or malware in the outer machine has full access to the files constituting the virtual machine, but normally and as far as I know, it would be too complex for a malware to try to influence the virtual machine through the virtualization layer. Even so, protection against the hosting machine is less reliable, and the VM's very existence may be jeopardized (for example by some ransomware such as Cryptolocker, deciding to encrypt all large files in the hypothesis that they must be valuable).
In such cases it is best to employ a different approach, that of a portable machine on a bootable USB device. There are many such; this is one. The idea is that when you need to perform some sensitive operation, you reboot the machine and boot it from the USB device. The machine will restart (should restart, if the USB application is well built) with no connection to the outside except basic networking, and no knowledge it even has a hard disk. Everything you do will only exist on the USB which will then be put back in your pocket when you finish. There's still a remote risk of so-called bluepilling rootkits having rogue access to the USB while it's plugged in, but as far as I know it's (for now at least) more theoretical than realistic.