Partial answer (why qRAM is useful)
Currently, quantum computers do not have an operational memory. Quantum processor is composed of qubits which can be considered to be an elementary memory. However, they are rather used for performing calculations. There is no way how to save intermediate results.
Of course, you can measure an output of the quantum processor and based on this measurement to re-program the processor and run an algorithm with this new input. However, to get complete information, you need to perform so-called quantum tomography. This method is exponentially complex, hence it erase any speed up gained by the quantum algorithm. Moreover, you need many copies of measured qubits, i.e. to run the algorithm with original setting many times. But in case of qRAM, you can simply save a qubit in the memory (it is not as simple as it sounds, you need to establish entanglement between saved qubit and the memory, move the qubit to the memory and uncompute qubit in the processor - sorry, this is rather crude description).
To conclude, not to have a quantum RAM and use classical register and measurement instead, could completely destroy advantage brought by some quantum algorithms.