If I only have M10.4 installed, can I compile a binary that will work with M10.3? To make the question more concrete, suppose I use the following command line (slightly modified from what CreateLibrary uses):
I don't think so. We provide runtime compatibility with the older libstdc++-based MathLink framework, but OS X doesn't provide a great way to select versioned interfaces at link-time. For the Wolfram RTL, we don't provide a libstdc++-based library with this build. If the versioning issue ever becomes prohibitive, I think we could see about providing tech support with a package containing only the link-time dependencies from 10.3, then it would be as simple as switching C compiler flags.
Really, I recommend keeping 10.3 for as long as you plan to support it with your LibraryLink code. That's the simplest solution. (or at least keeping its mathlink framework, SystemFiles/Includes directory, and WolframRTL libraries from SystemFiles/Libraries-- that's all you need!).
With Mathematica 10.3, I compiled some libraries (where I used C++11) using -mmacosx-version-min=10.9. Without this I couldn't use C++11 features ... The result did work so far. But could this, in principle, cause problem with 10.3 (which uses -mmacosx-version-min=10.6 by default)? Does -mmacosx-version-min=10.9 imply anything about libc++ vs libstdc++?
The Mac OS X compatibility flag means exactly what it sounds like it means. If you're targeting only 10.9 and above, it shouldn't be dangerous for you to use whatever flag in principle. It does imply -stdlib=libc++, so make certain that the library your produced didn't link against libc++:
$ otool -L /path/to/libmylibrary.dylib
There are some C++11 features in libstdc++, but it's version 4.2.x and it's definitely not feature complete (the compiler should complain if you try to use something that isn't present-- I think -std=C++11 or -std=C++0x may also be necessary in that case). Both libstdc++ and libc++ have backward compatibility, so linking against different versions of those libraries and headers should be safe (using the Mac OS X compatibility flags) provided you don't use the wrong one.
Really, Mac OS X 10.9 with libc++ is where Apple got their act together on C++11, so I highly recommend targeting that platform and beyond with your C++11 code.