If you don't have ECC, you don't even know that your CPU is executing the correct code. There goes the "detectable" part.
DRAM is just one level in the memory hierarchy and it can absolutely be tested by the other levels in the system. It won't be continually monitored, and there will be a performance penalty, and it's a PITA, but it can definitely be done without hardware ECC. Even some of that can be minimized as most tests are statistical in nature anyway.
There's a decent amount of distributed stuff that has a design principle of not trusting the hardware it's running on.