Fat binaries aren't needed to support pointer arithmetic or any other C++11 features in a cross-platform binary. LLVM bitcode supports pointer arithmetic. I also believe .NET bytecode supports pointer arithmetic. I'm not sure what other features you thought would require some kind of fat binary.
WinRT lets you write native Win 8 apps in C++, however it doesn't use LLVM or .NET bytecode. If universal binaries are supposed to be supported across different architectures (like x86, ARM, etc.) I don't know of any other way to support it than fat binaries.
Fat binaries aren't needed to support pointer arithmetic or any other C++11 features in a cross-platform binary. LLVM bitcode supports pointer arithmetic. I also believe .NET bytecode supports pointer arithmetic. I'm not sure what other features you thought would require some kind of fat binary.