Yes, using a FP32 W buffer makes sense, and the Vertex Shaders definately has enough precision is that.
Also what I meant is that Z is computed with a (z-N)/z like equation which result an approximate 24bit precision in the whole [0, 1] range. This is because how the FP subtraction behaves.