1. fair amount of CS work is platform independent, and much of the stuff that isn't benefits from OS X. The unix roots of the OS means you get a huge number of transferable skills and neat little tricks that you can then apply to your "home" OS, while still retaining one of the best UIs ever designed.
2. I haven't noticed anything particularly laggy about running either one of my Linux distributions (Ubuntu and Fedora) or my Windows VM via Parallels. I prefer it to VMWare, but your mileage may vary.
3. The whole point of buying a MBP and then running VMs is you spend your "not on a VM time" in OS X. Don't buy the Windows version of Office if that's the case - you keep dumping more and more of your computing time into Windows 7, and at that point, you should have gone with a Lenovo.
4. A MBP should last quite some time. I was into my 5th year of grad school when my MBP started feeling long in the tooth. And it still ably soldiers on doing its job, because frankly, while it's old, the high memory node on the cluster its sending jobs to is brand spanking new.
5. 13 inches is a bit small for coding. Or in my mind, most primary computer usage, be it term paper writing, coding, etc. If I *just* had a laptop, I'd consider 15 inches the minimum, or if I really wanted the portability of a 13 inch machine, I'd go buy a decent external monitor.
Also this. When it comes down to it, if there's any sort of major resource requirement to anything I've written, its running on a server. Once you SSH in, it doesn't really matter what you're using, save for your own personal preferences.