Well as I read it, the only time a NACK is sent for valid data is when the Master is requesting a sequential read. The Master sends a NACK on the last read to say he is done. But there is no reason why the Master couldn't ACK the last read and then send a STOP. Also note that the NACK/ACK is sent by the master on a read, not the slave.