In other anecdotal evidence, I've been using Redis as a persistent store since 2011 and haven't lost any data.
There's always the giant caveat: just because software says it does X doesn't mean it does X until you have seen it actually happen. In this case, restarting a zero-persistence master was bad because it goes run->die->restart[empty]. Then, the replicas immediately reconnect, resync[empty], and now they are completely up to date with the master (which is the only Redis contract asked for here: always be an exact copy of your master; since persistence was not requested, the replicas re-sync an empty dataset).
In better news: there are already fixes for each of these issues showing up in Redis very quite Real Soon Now.