I'm using virtual box for various things and there is a lot of problems with this solution
License: You have to have boxed (read expensive) license for Xindows XP
USB: redirectig USB devices (Players, soundcards) does't work 100% flawlessly.
Shared folders: to slow for huge libraries.
Seamles windows: I had some problems with non-standard graphical intensive apps like MC
Virtualization is not an easy an easy path to follow. wildly diverging implementations and choices made by developers leave the process fraught with many hair pulling scenarios and sleepless nights. but so far virtualbox has been fairly stable and one of the better implementations out there, especially when it comes to a guest os residing on a functioning host. keep in mind if you are expecting any sort of decent performance then you really need to have some decent hardware on the host to pull it off with out a lot of performance degradation. quad core, 4gb mem+ 8gb recommended, decent video card, etc... it helps immensely if youre using a new gen cpu with all the new bells and whistles baked in for virtualization to the bare metal.
to your points here are a few observations...
licensing, really cant get around it. if going to use windows legally then you are going to need to have a license. I used an old license from a retired machine that i owned, so didnt have to really pay for it. if you dont have an old machine that no longer being used or a license from the machine you may have converted then you'll definitely need one for it to be legal. as for re-purposing your old licenses, in the US this has been covered in case law on the "doctrine of first sale" and a discussion for another board. so re-purposing any old licenses for hardware you own shouldnt be too much of an issue and is a great way skirt around having to buy a new license for something you already own but have since uninstalled from its original location. keep in mind that a license really only covers one machine. so you cant really install the same license on 2 separate machines. if you re-purpose then you have to uninstall the the software on the old hardware.
USB- usb is a bit tricky in virtualization. this is especially true if the device is in use by the host and then needs to be used by the guest. conflicts can arise when both OSes jocky for control of the resource. best way around this is to have dedicated hardware for the guest os. for example if you were going to use an usb dac for audio output, use a different piece of hardware for the host and only "attach" the dac to the guest. the guest should then have completed dedicated control over the attached device. try to stay away from an sort of external drive sharing between hosts/guest and dedicate them to either one or the other. can get into some really kooky problems when either of the OSes tries to take control of the hardware...
shared folders- did you set up an internal virtual network and look at perhaps adding iSCSI to gain some performance improvements? Internal virtual network is the first place to start, iSCSI is a bit more advanced. the documentation and forums are a great resource to get the answers you need to configure your system for decent performance. but setting up a virtualized internal network should speed things up greatly...
graphics- in all reality if looking to playback video or heavy eye candy inside MC then you are definitely going to be disappointed. Ive been running a very stripped down interface with out a lot of eye candy and graphic flourishes that eat up precious system resources. another thing to consider is to make sure that when youve built your guest OS that youve included the "guest additions" for windows if thats the path you are taking... there are some optimizations in there to add support to enable hardware acceleration and enhance the directx interpretation. if still having issues then you can always run the guest OS as headless and just RDP into it.
some things to think about. again running a guest OS is not a trivial exercise. takes a bit of plumbing to get it to work out right and even then it wont be the same as running natively. sure would be great to have MC run native on linux, but dont think its gonna happen anytime soon... running as a guest os is by far the best way ive found out there.. unless someone has any other suggestions... id be welcome to hear how anyone else has gotten MC to run on linux and what they are running...