The check "!= 0.0f" is there only to avoid the divide by 0. Is it a bad practice to not check with epsilon on this case ?
Avoiding a divide by zero may be the only intent, but your code is indeed much more itelligent than you think, It does much more. :)
It also implements correctness, and an effective optimization (unluckily, for a case that practically never happens). If the dot product is zero, the ray is perfectly parallel to the plane, so there is absolutely no way you could have an intersection. It doesn't even make sense to try and perform the remaining calculations -- no matter what the result, there cannot be an intersection. It therefore makes sense to return false immediately (from a correctness point of view), and not to calculate the distance to point or the whole rest at all (from a performance point of view). Only just... sadly, exactly zero is something that never happens.
But of course, almost zero and zero is the same thing in practice since if the dot product is almost zero (i.e. less than epsilon), then this means there is an intersection somewhere, sure, but it is unbelieveably far away, so far that you are unlikely to be able to make something meaningful of it. The intersection is so close to "at infinity" that by all practical means, you can as well consider it "no intersection".
Now, the problem is, what value to use as epsilon? Surely, there must be a tried and proven, correct, practical value? Sadly that isn't the case. Since the value of epsilon depends on the magnitude of its surrounding operands, any answer that one might give will be wrong. While carefully chosen values of epsilon "work well" in many cases, that's generally not a good or correct approach and indeed highly dangerous (it may cause failure, months or years later, without providing any intellegible clue about why something unrelated suddenly doesn't work).
The only correct approach is to do a scale-relative compare as indicated in the Goldberg paper.