Christ, let me get my hat.
Now I'm looking forward to what come safter Windows 7, since it's going be natively 64bit and will likely run 32bit on a compatibility layer.
Windows Vista already has a native 64 bit version that runs legacy (32-bit) code by means of a "compatibility layer." (Technically, it just implements the Win32 API on a 64-bit platform, but I guess that's basically the same thing as a compatibility layer.)
I think Apple has it right with MacOS. Each OS upgrade is unqiue and can run a lot of older stuff basically by emulating its original platform.
That's not really correct in any substantive way. There have been six stable releases of Mac OS X (10.0, 10.1, etc, up to 10.5), and they're all pretty much compatible; each one is just an incremental upgrade over its predecessor. Prior to Mac OS X was "Mac OS Classic" (as it is now called), which was a completely different OS; Apple abandoned it in 2001. Older Macs will allow you to run Classic apps inside an emulator, but support for this was ended in 2005 when Apple switched their architecture from PowerPC to x86.
When Apple switched from PPC to x86, they added a code transformation layer so that Mac OS X apps compiled for PPC could run on the newer Intel-based machines, but they didn't bother porting the Mac OS Classic emulator, so Mac OS Classic software won't run on any recent Mac barring some extraordinary method.
Anyway, I hope that answers your question about where babies come from.
Windows has been pretty much based on the same legacy kernel since what, win95?
No. Here's a history lesson:
The original Windows wasn't a real operating system; it was just an API and some simple programs built on top of DOS (using the DOS kernel). Win95 and Win98 were also designed this same way. Unfortunately, DOS is crap and Microsoft realized this in the 90's. They then started work on Windows NT, which was intended to run most Windows software on a non-crap foundation. Win2K, WinXP and Vista are all based on the Windows NT kernel. Basically they just reimplemented all the Windows-level APIs from Win95 (like DirectX and Winsock), except they used NT instead of MS-DOS. This meant (in theory) that any software that only used Windows-level system calls would run on WinNT without modification, but any software that relied on DOS-level system calls would need to be run inside an emulator.
The real "legacy problem" with Windows is that it's expected to support about two decades' worth of APIs, many of which were designed before Microsoft gave a damn about software quality.
And now you know how to score heroin from street children.