RBF and full blocks make 0-conf useless, because it's easy to override. Wasn't it once useful? I've heard without those it's more secure than Visa in terms of double spending.
No. A zero-confirmation transaction is not useful for anything. Satoshi used PoW specifically, because he was trying to answer how to trust a transaction(double-spending problem).
Secondly, transaction replacement was introduced by Satoshi in the first release of the Bitcoin software, but was later removed due to denial-of-service problems.