Functional Programming vs. Unnecessary Consing

This is my first post, so sorry if I'm asking something someone else has already asked about. I've Googled this question over and over, but nothing relevant seems to come up.
People say that in Lisp, you should write in a mostly functional style. But they also say that you should avoid unnecessary consing. But to write in a functional style, you have to avoid modifying state and return brand new objects instead. Google's Common Lisp style guide, for example, says you should avoid giving CLOS objects setter methods, and construct brand new objects instead. So how do you reconcile these rules when you're dealing with structs or CLOS objects--do you go with the don't-modify-state rule, or the don't-cons-unnecessarily rule? Or if you switch between both, what criteria do you go by to determine which? Or am I missing the point entirely?
People say that in Lisp, you should write in a mostly functional style. But they also say that you should avoid unnecessary consing. But to write in a functional style, you have to avoid modifying state and return brand new objects instead. Google's Common Lisp style guide, for example, says you should avoid giving CLOS objects setter methods, and construct brand new objects instead. So how do you reconcile these rules when you're dealing with structs or CLOS objects--do you go with the don't-modify-state rule, or the don't-cons-unnecessarily rule? Or if you switch between both, what criteria do you go by to determine which? Or am I missing the point entirely?