I think it would be good to specify the error handling more clearly here, either in docs/comments or on the interface wiki page.  It seems like there are three cases for what the callback could get:

1. Err falsy, data truthy, stat truthy -- read & stat'ed successfully
2. Err truthy, data null, stat null -- error while reading the file
3. Err thruthy _and_ data truthy, but stat null -- read successfully, but error during stat

...which is fairly non-obvious without reading the code closely