Help for -ffast-math could be confusing, but here's the code that implements it:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?revision=179334&view=markup

Look for `options::OPT_ffast_math`.  For example, near line 2125 you can see that -ffast-math includes both `-ffinite-math-only` and `-fno-honor-nans`.  If there are no arguments from that list, `if (Arg *A = Args.getLastArg` will take a `false` branch and will not add any options.  So the default is strict and IEEE compliant.

You can also check this using the driver debugging flag `-###`, for example `clang -O3 -ffast-math -### foo.c`.

I'm totally OK with being explicit when specifying all the detailed flags, but we need to make a point in comments that `strict`, `precise` and `defaultprec` are equivalent and ISO C++ and IEEE compliant (it is totally not obvious now).