From what I understand of it, the architecture hasn't changed as much as it did from 16 bit to 32 bit so why do we need XP mode and the like to run 32 bit apps in Windows 7 64 bit?
Or have I understood it wrong?
it can run 32 bit programmes fine. It can't run 16 bit programmes.
XP mode is a bit of insurance - if a particular software won't run on 7 (32 OR 64 bit - xp mode is available for professional edition and up on both) then you can run it in XP mode. This hasn't happened to me yet, but its probably for the 'you can take XP from my dying hands' crowd.
In most cases, compatibility mode will do tho
I hope this sheds some light on incompatibilites:
Microsoft decided to tighten up on the kernel with the 64-bit versions. Device drivers have the same level of access to hardware as the kernel, so some specific things that were changed in 64-bit versions in the name of security are:
Microsoft also switched to a new video display driver model (LDDM), but did keep the old one (XDDM). XDDM, the old model, doesn't support Aero.
Some programs load customized device drivers on the fly to accomplish their tasks. These will defintely not work on Vista/7.
Microsoft updated quite a few components in Vista/7. This could mean a change in the undocumented behavior of those components. Programs that rely on bugs within these components, or undocumented DLL functions would have an issue as well.
32 bit programs should run just fine under 64 bit Windows.
XP mode is for programs that are incompatible with Windows Vista and Windows 7 of either flavour.
See this Ars Technica article for more information.