It isn't. It always swaps. Most times you're dealing with endianness, you want to convert to or from native CPU to or from big or little endian. Code that always swaps regardless of native endianness will silently do the wrong thing if compiled on a machine of different endianness.
You're telling me that what the linux kernel guys do is "weird endian conversion macros?" I don't believe you.
You're telling me that what the linux kernel guys do is "weird endian conversion macros?" I don't believe you.