A layer of abstraction above the different libraries can help, but often at the cost of a performance hit that you don't want in games.
Different input mechanisms (mouse and keyboard vs gamepad) need different input schemes to be fun.
Console games are usually played sitting on a couch in front of a TV. Sitting at a desk with a computer monitor much closer can also make a difference in what UIs (eg game HUDs) work well.
I have no clue what was involved in porting the Batman game, but your blanket statement about porting as a solved problem doesn't cut it.
An interesting example of a well-done port from PC to iPad is the game FTL. They changed the interface to feel native on the iPad. Recompiling the code was probably the least of their worries.
The X in Xbox is a leftover from its early development when it was the DirectX Box.
The X in DirectX came about as shorthand for all the various DirectWhatever APIs that Microsoft was introducing in the late 90s.
EDIT:
If the suggestion is that the porting should be relatively easy because the Xbox runs DirectX, well, kind of. It's not a 1:1 mirror of the API available on Windows, and the actual hardware is fairly divergent from what you find in PCs, even if it is x86 again.
So yeah, some hardware differs but it is mostly cosmetic and as a software developer it shouldn't matter to you. See https://web.archive.org/web/20080209140715/http://www.xbox-l... for more information.
I did reference the original Xbox in a later post, and I mostly had the GPU in mind there. The NV2A is close to the GeForce3 in design, but it's still not quite the same chip that was available to consumers. It was kind of a stepping stone between the GF3 and GF4 and was designed to support some things that would later show up in DX9 while not truly being a DX9 GPU.
Close, but not quite the same as standard PC hardware, and that in-between generations nature of the hardware and APIs means that optimizing for it as a target platform is going to require extra time to get it working as well on "true" DX8.1 or DX9 hardware.
The original Xbox was the closest to standard PC hardware, and even it diverged somewhat from what was available on standard PCs at the time at both a hardware level and API level.
The common APIs make it easier to develop cross-platform, but the platforms are still different.
http://www.eurogamer.net/articles/digitalfoundry-how-the-cre...
Not even real "desktop" OpenGL, but OpenGL ES 1.1 (branded as PSGL) implemented on top of LibGCM.
Also not to say you wrong (almost no games used any of PSGL), but at least several games used some of it. E.g Techland titles like Call of Juarez / Dead Island.
So it's GLES 1.0 + some 1.1 features + more additions.
So this is less of a port, and more of a deployment to a platform that widely varies in terms of performance. And this is much easier to do when your graphics aren't so "next gen".