Is it a safe assumption, say for x86, that an instruction either does not access memory, or only reads from memory, or writes to memory?
I could not find any instruction but I am not sure if this really is the case.
What about ARM and MIPS?
Your question has been answered in comments for x86 -
movsb both reads and writes to memory.
On ARM the only instructions that touch memory is "read from memory to a register" and "write a register to memory", so no there aren't. Same with MIPS.
IIRC all (or almost all?) RISC processors are this "load and store" architecture.