You are right. Params can be references to state, either as an atom or ref, or to a function which accesses external state (e.g. a database).  The idea that params somehow obviate the need for state overlooks that.