I wouldn't use XP unless it is required. Windows 7 has better para virtualization drivers than those available for XP. Windows 7 can run newer apps and works fine with 512MiB to 1GiB of RAM, which is nothing for today's computers. My workstation has 128GiB of 3600MT DDR4, which cost me $170... Memory is cheap. Most laptops come with 16GiB now too. A gig of RAM for a VM is peanuts.
Anyways, Windows 7 can be slimmed down by stopping all unneeded services and proper configuration (possibly disabling page file, etc.). A VHD differencing disk adds interesting configuration possibilities too: Make a parent VHD with Win7 configured how you want, then make a differencing "child" VHD to store changes to the parent disk. If you break something, delete the child VHD and make a new one. This is done with Win9x VMs on PureDOS and saves space for different configs that might conflict with each other.
Anyways, some software requires Vista or higher, so XP isn't always an option.
In my config I plan to use a combination of a secondary LAN at the host and the Linux "unshare" command to create a new network namespace for the guest and host to pass RDP (or another protocol for remote connection) and communication with some LAN based test equipment. The Windows guest does not need an internet connection and does not need to be updated beyond what is required by the installed programs. It simply needs to run legacy apps as needed and not crash. Using it for any other purpose defeats the point of running Linux as the host OS and a dual boot should be used instead.