If you put marketing and company politics aside, then a port of the "upper levels" of the Mac OS would not be difficult if they are designing it the way your comp sci professors told you to (modular programming, functional programming, or object oriented programming depending on what decade you took cs)
The people at Apple working at the level of Carbon or Cocoa should be using the Quartz imaging model to write on the screen (maybe even a higher level API than that, but certainly no lower). Quartz would be built to use the Core Foundation services. Core Foundation would sit above BSD. BSD sits above Mach. Mach abstracts hardware from all of the layers above it.
Apple (and the comp.sci professors) tell developers to develop at the highest level possible. The abstraction gives Apple a chance to improve or switch out the lower levels completely as long as it gives the same result when asked by the higher level code.
Anything written above the Mach level should work on any platform that Mach was ported to. Of course device drivers are NOT above the Mach level; they deal with hardware directly so they probably have to be rewritten for each change in hardware. If Apple or another developer wanted to write directly to hardware and skip these lower level of abstractions (maybe they're trying to get a speed boost) then they'd have to rewrite their code when they moved to a different platform.
This is pure speculation on my part, but one thing that other companies do to test these levels of abstraction is to compile their code for different platforms. It's a neat thing to do for Quality Assurance because if any code in the "upper layers" has bypassed the proper channels of accessing hardware (whether intentionally or not) the change to other hardware is a great way to catch this. Even if Apple never ships the higher levels of OS X on an Intel platform, they probably still compile it on one occasionally for this sort of QA testing.
In short, it's the low levels that are difficult to port, not the higher ones.
William