Looks like some things are faster and some slower in that comparison. The main difference that could account for this is the compiler version, although it is possible that ARM versus Thumb2 (it not being clear which of these is predominantly used by each distro) also makes a difference. On the R-Pi, Thumb2 is not available, only the older and much less capable Thumb, so this difference would be even greater if relevant.
The only major difference between softfp and hardfloat is that in hardfloat, arguments can be passed in VFP registers, while in softfp they must be moved to integer registers (or RAM) even if they start off in and are then processed in VFP registers. Eliminating this excess data movement should be a pure win. (Also, recompiling an individual library for this ABI, to fit in with a distro that uses it, should be easy unless there is ABI-dependent assembly involved.)
The difference between softfloat and softfp is that in the former, integer-based routines are used for manipulating floating-point values, while in the latter the VFP unit is normally used instead. These two maintain a common ABI, so individual libraries and applications can use either one interchangeably, just with different levels of efficiency on different hardware.
On VFP hardware, softfp and hardfloat should always be faster than softfloat, for software that uses FP a lot. There should be nil difference for integer-only applications such as data compression or cryptography, so use benchmarks based on those two areas as calibration for other platform details.
The key to knowledge is not to rely on people to teach you it.